Data Dictionary
APX Specification: technical documentation
Version 0.16.0 (draft)
Updated 2026-11-02
APX Specification · APX 0.16.0 · OpenAPI 0.16.0 · built on APDS 4.1 (2026-01-14) · Draft
Introduction
This data dictionary gives the definitions and characteristics of every
class, attribute, association role, enumeration and external code list
that the APX API defines. It is generated from the normative OpenAPI
document, spec/dist/apx-v1.yaml, each time the documents are built, so
it always matches the API.
It follows the layout of the APDS 4.1 Data Dictionary:
- A.1 is ordered by package. APX has one package per module. Each package lists its classes, specializations, associations and attributes.
- A.2 lists the datatypes.
- A.3 lists the enumerations alphabetically.
- A.4 lists the external code lists (APX registries) with every entry.
- Annex B lists the APDS 4.1 classes APX carries, and says where the APX overlay adds to or corrects them.
- Annex C links each APX class to the data element proposed from it to APDS.
APDS 4.1 classes are not redefined here. Where an APX member uses one,
its type names the APDS domain and class (for example
Session.Session), and its definition is in the APDS 4.1 Data
Dictionary.
How to read the tables
The tables use the columns of the APDS 4.1 Data Dictionary, with three additions for APX:
- Class name: the symbolic name (UpperCamelCase) of the class, as it appears in the OpenAPI document.
- Association end / Attribute name: the symbolic name of the member.
A member of an unnamed structure is written
owner.member. - Designation: the name in natural language.
- Definition: the definition, taken from the OpenAPI document. Where the document gives none, the definition of the referenced class is used, or the wording APX uses for the same member elsewhere. A definition marked ‡ was derived from the member's name because the API gives no description. A definition marked † was written by the editors from the APX standard text because the API gives none. Both marks show where the OpenAPI descriptions should be filled in, so that a later edition can drop the marks. An enumeration value shown with "—" has no definition yet.
- Kind:
class,union(one of several shapes) orenumeration. - Multiplicity: written m..n, as in APDS. m is 0 for optional and 1
or more for mandatory; n is a number or
*. - Target / Type: the class, datatype or enumeration of the member,
written
Domain.Namefor APDS 4.1 types andPackage.Namefor APX types. "code list" names the APX registry whose values the member takes. - Notes (APX):
read-only(set by the server),write-only(accepted on input, never returned),nullable(may be sent as null) anddeprecated. - APDS status (APX):
APX onlywhen the class stays in the APX specification, or the APDS element proposed from it and its tier (see 06 Requests to APDS).
A.1 Data dictionary of packages for "APX"
A.1.1 "Common" package
A.1.1.1 Location of "Common" package. The location of the "Common" package is:
-- APX/Common (source: spec/openapi/domains/common/schemas.yaml; normative text: APX Parts 4, 5, 10 and 12)
A.1.1.2 Classes of the "Common" package
Table A.1 -- Classes of the "Common" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| ApxResourceCore | Apx resource core | Identity core shared by every APX-defined resource. Shaped so any APX resource can itself be the target of an APDS Reference or VersionedReference (RFC 4122 UUID identifier + integer version). | class | APX only |
| CodeListValue | Code list value | A value drawn from an APX or implementer UserDefinedCodeList — carries the defined value plus an optional ReferencedCodeListEntry-style pointer to the list that defines it. | class | APX only |
| CredentialDigest | Credential digest | The apds-ext:apx:credential-digest@1.0 decoration (Part 9 §9.6 rule 6): a keyed digest of a normalized credential identification (a plate), so a consumer that only needs "same plate?" can match without the plate itself. value is base64url(HMAC-SHA-256(key, normalized identification)); the key is named by keyId and distributed through GET /v1/digest-keys. Visible under apx.data:read. |
class | APX only |
| EventEnvelope | Event envelope | The single envelope for all APX asynchronous delivery (webhooks and SSE). Attribute names are aligned with CloudEvents 1.0 (informative mapping in the standard's annex); subject carries an APDS Reference so events bind to APDS/APX entities natively. |
class | APX only |
| Extensions | Extensions | The official APDS extension container (Use Case Document §C.2.5). Keys MUST follow apds-ext:<namespace>:<class>@<major>.<minor>. Implementations MUST preserve unknown extension keys on round-trip (tolerant reader, faithful writer). An APX decoration key, wherever the container appears, MUST carry a value valid against that decoration's schema (Part 4 §4.3); other keys are any object. |
class | APX only |
| Problem | Problem | RFC 9457 problem details. APX problem type URIs are registered in the APX problem-type registry. Used for all APX error responses; APDS-native routes may alternatively use the APDS ResponseStatus shape. |
class | APX only |
| RecordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | class | Proposed: RecordType (Tier 3) |
A.1.1.3 Specializations of the "Common" package
There are no specializations in the "Common" package.
A.1.1.4 Associations of the "Common" package
Table A.2 -- Associations of the "Common" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| ApxResourceCore | recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | |
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| CodeListValue | codeListId | Code list id | VersionedReference to the defining UserDefinedCodeList. | 0..1 | PkCommon.VersionedReference | |
| EventEnvelope | subject | Subject | The entity this event is about. | 0..1 | PkCommon.Reference | |
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| Extensions | apds-ext:apx:devicestatus@1.0 | 0 | Live state overlay keyed by Reference to an APDS SupplementalEquipment — never duplicates its descriptive fields. APDS 4.1 has no general equipment status list: its RefillPointStatusEnum (Data Dictionary A.3.53) covers refill points only and is absent from apds-api-4.1.yaml. deviceState values come from the APX registry apx-device-states, which follows that enumeration's style and shares its available, occupied, inoperative and unknown values. Attachable to APDS payloads as apds-ext:apx:devicestatus@1.0. | 0..1 | Control.DeviceStatus | |
| apds-ext:apx:ratepolicy@1.0 | 0 | Level B decoration on an APDS RateTable, carried in its extensions container as apds-ext:apx:ratepolicy@1.0 (Part 6 §6.6). APDS models the rate deck completely; it has no way to say which tables an agent may offer as a negotiated rate. This is that flag — and because it rides inside the RateTable, every consumer mirroring the deck through the native /rates route (Part 5 §5.2) receives it with the table, no second query. APX deliberately defines NO selection rules here (length of stay, time of day, caller type): the system presenting the deck to an agent or a third party applies its own guardrails. The server's only rule is enforcement — a pushNegotiatedRate naming a table that is not flagged negotiable is refused (422 rate-not-negotiable). |
0..1 | Control.RatePolicy | ||
| apds-ext:apx:lpr-read@1.0 | 0 | What a modern LPR camera knows beyond the plate string and one overall score (Part 13 §13.3a). Carried on the ingested APDS Observation as the Level B decoration apds-ext:apx:lpr-read@1.0 in its extensions container (Part 4 §4.3 — plain APDS consumers ignore it), and projected on LprRead.detail and PlateCandidate.detail. Every field optional; each recognized attribute carries its own confidence. APDS's vehicleAncillaryIdentification (country, stateProvince, make, model, color) remains the APDS-visible copy of the winning values; this block adds the per-attribute confidence, the candidates that lost, and the passage geometry APDS has no fields for. |
0..1 | Lpr.LprReadDetail | ||
| apds-ext:apx:lane-cameras@1.0 | 0 | The LPR cameras on a lane and which way each one faces (Part 13 §13.3a(5)). Carried on an APDS VehicularAccess as the Level B decoration apds-ext:apx:lane-cameras@1.0 in its extensions container (Part 4 §4.3). Facing is relative to the facility, not to the lane's mode, so it holds on reversible lanes. Describes the setup only; APX derives nothing from it. |
0..1 | Lpr.LaneCameras | ||
| apds-ext:apx:reservation@1.0 | 0 | The apds-ext:apx:reservation@1.0 extension object attached to a native AssignedRight. Presence of this extension marks the AssignedRight as a reservation; state transitions follow Part 14 §14.1 (transition table). plannedStart/plannedEnd MUST mirror the AssignedRight's plannedUses[0].startTime/endTime, which is authoritative. |
0..1 | Reservations.ReservationExtension | ||
| apds-ext:apx:permit@1.0 | 0 | The apds-ext:apx:permit@1.1 extension object (Part 14 §14.2; @1.0 remains valid and carries the first two members only): links a renewal permit to the one it renews, so a portal can follow the chain, and caps how many of a multi-vehicle permit's vehicles may be parked at once (§14.2d). |
0..1 | Reservations.PermitExtension | ||
| apds-ext:apx:permit@1.1 | 1 | The apds-ext:apx:permit@1.1 extension object (Part 14 §14.2; @1.0 remains valid and carries the first two members only): links a renewal permit to the one it renews, so a portal can follow the chain, and caps how many of a multi-vehicle permit's vehicles may be parked at once (§14.2d). |
0..1 | Reservations.PermitExtension | ||
| apds-ext:apx:session-detail@1.0 | 0 | The apds-ext:apx:session-detail@1.0 decoration on an APDS Session (Part 5 §5.8): what the pairing of reads decided and APDS has no members for — the reads behind the visit, why and how it ended, the matches it rests on, and the parent visit of an area Session. Written with the native Session POST/PUT by an external pairing engine; a server that pairs reads itself SHOULD write the same block on its own Sessions. A plain APDS client ignores it. It adds no event topic and carries no plate characters. A write that breaks a consistency rule of §5.8 is 422 and nothing is written. |
0..1 | Data.SessionDetail | ||
| apds-ext:apx:match-evidence@1.0 | 0 | How a link to a Session was established and how sure it is (Part 5 §5.8; shared by the matches[] member of apds-ext:apx:session-detail@1.0 and the decoration apds-ext:apx:match-evidence@1.0 on a Violation or ValetTicket). Carries no plate characters and no vehicle attribute values (Part 9 §9.6). Where both ends of one link carry evidence (the Session's matches[] entry and the decoration on the Violation or ValetTicket), the two MUST agree. Evidence with plate.method: lenient or applied: false may excuse a stay but never accuse one: issue on a Violation resting on it is 409 violation-not-issuable (Part 19 §19.4 rule 5). |
0..1 | Data.MatchEvidence | ||
| apds-ext:apx:stay-compliance@1.0 | 0 | The apds-ext:apx:stay-compliance@1.0 decoration on an APDS Session (Part 5 §5.9): the outcome a compliance engine scored for the stay, and the policy it measured against. Written with the native Session POST/PUT by the engine; a server that scores stays itself SHOULD write the same block. The rules that produce the outcome stay in the engine. |
0..1 | Data.StayCompliance | ||
| apds-ext:apx:violation-source@1.0 | 0 | The apds-ext:apx:violation-source@1.0 decoration (Part 19 §19.13): a violation issued by an external enforcement system and imported through POST /v1/enforcement/violation-imports, keyed on system + recordId. sourceRevision, or without one sourceUpdatedTime, orders the source's revisions. |
0..1 | Violations.ViolationSource | ||
| apds-ext:apx:payment-detail@1.0 | 0 | The apds-ext:apx:payment-detail@1.0 decoration (Part 13 §13.6a) on a PaymentRecord or an APDS Payment: the rate sold and the lines that sum to the total, so revenue reports and the deck price check have the base amount, the fee, and the product without a bilateral code. On a PaymentRecord it carries rateSold and lines; on a native APDS Payment it carries rateSold only, because the Payment's own paymentLines are the itemization there. |
0..1 | Accounts.PaymentDetail | ||
| apds-ext:apx:credential-digest@1.0 | 0 | The apds-ext:apx:credential-digest@1.0 decoration (Part 9 §9.6 rule 6): a keyed digest of a normalized credential identification (a plate), so a consumer that only needs "same plate?" can match without the plate itself. value is base64url(HMAC-SHA-256(key, normalized identification)); the key is named by keyId and distributed through GET /v1/digest-keys. Visible under apx.data:read. |
0..1 | Common.CredentialDigest | ||
| apds-ext:apx:equipment-detail@1.0 | 0 | What a piece of hardware is, where it is, and what it does (Part 26 §26.1). Carried on an APDS SupplementalEquipment as the Level B decoration apds-ext:apx:equipment-detail@1.0 in its extensions container (Part 4 §4.3). The equipment TYPE stays the APDS EquipmentTypeEnum (often paymentMachine or other); role says what the item does on the site, from the fixed code list apx-equipment-roles. |
0..1 | SiteConfiguration.EquipmentDetail | ||
| apds-ext:apx:camera@1.0 | 0 | A camera anywhere on the site, not only on a lane (Part 26 §26.3). Carried on a SupplementalEquipment whose EquipmentDetail role is camera, as the Level B decoration apds-ext:apx:camera@1.0. Where the camera is (area, level, lane) and what it is built into (builtInto) are EquipmentDetail members, shared with every other piece of hardware; this decoration adds how it is mounted, what it looks at, and how it can be viewed. It holds no addresses, usernames or passwords: a view is obtained through POST /v1/cameras/{id}/views and the password never leaves the site (Part 26 §26.3). Camera models and stream profiles follow ONVIF (Profile S, Profile T) and are not redefined. apds-ext:apx:lane-cameras@1.0 (Part 13) is unchanged. |
0..1 | SiteConfiguration.CameraDetail | ||
| apds-ext:apx:external-ids@1.0 | 0 | The ids other systems use for the same place, lane or equipment (Part 26 §26.6). Carried on any HierarchyElement as the Level B decoration apds-ext:apx:external-ids@1.0. APDS SupplementalFacility.externalIdentifiers holds untyped strings; here each id says which system issued it. system is a URI the issuer owns, usually its own domain, so APX names no products or platforms. POST /v1/identifiers:resolve finds the APX record from such an id. |
0..1 | SiteConfiguration.ExternalIdentifiers | ||
| apds-ext:apx:place-operations@1.0 | 0 | Operational facts about a place that a call centre needs before a call (Part 26 §26.5). Carried on a place HierarchyElement as the Level B decoration apds-ext:apx:place-operations@1.0. escalationContacts lists roles in calling order, never names or phone numbers: the call platform holds those, so APX carries no personal contact data. A Part 17 approval request is addressed to a role from this list. |
0..1 | SiteConfiguration.PlaceOperations | ||
| RecordInfo | creator | Creator | Reference to the creating Organisation or Contact. | 0..1 | PkCommon.Reference |
A.1.1.5 Attributes of the "Common" package
Table A.3 -- Attributes of the "Common" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| ApxResourceCore | id | Id | RFC 4122 UUID, unique within the resource class. | 1..1 | Uuid | |
| version | Version | Monotonically increasing object version. | 1..1 | Integer | ||
| CodeListValue | value | Value | The definedValue from the code list entry. | 1..1 | String | |
| CredentialDigest | alg | Alg | The digest algorithm: HMAC-SHA-256. † | 1..1 | CredentialDigest.alg (enumeration) | |
| keyId | Key id | The digest key the value was computed under (rotation by keyId). | 1..1 | String | ||
| value | Value | base64url, no padding. | 1..1 | String | ||
| credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 0..1 | Right.CredentialTypeEnum | ||
| EventEnvelope | id | Id | Unique event id (delivery-stable; retries reuse it). | 1..1 | Uuid | |
| type | Type | Event topic. Either an APX topic (apx.<domain>.<event>.vN) or an APDS EventTypeEnum value (e.g. SessionCreated). |
1..1 | String | ||
| source | Source | Identifies the publishing implementation/site. | 1..1 | String | ||
| time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| dataschema | Dataschema | Optional URI of the schema that data validates against. |
0..1 | Url | ||
| data | Data | Event payload. For APDS EventTypeEnum topics this is the APDS EventData shape. | 1..1 | Object | ||
| Problem | type | Type | Problem type URI from the APX problem registry. | 1..1 | Url | |
| title | Title | Short human-readable summary of the problem type. | 1..1 | String | ||
| status | Status | HTTP status code. | 1..1 | Integer | ||
| detail | Detail | Human-readable explanation specific to this occurrence. | 0..1 | String | ||
| instance | Instance | URI reference identifying this specific occurrence. | 0..1 | String | ||
| RecordInfo | creationTime | Creation time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | |
| creationUser | Creation user | Human or system principal that created the record. | 0..1 | String | ||
| lastUpdate | Last update | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| lastUpdateUser | Last update user | Human or system principal that last updated the record. | 0..1 | String | ||
| origin | Origin | The implementation that first created the record, when it differs from the one serving it (Part 18 §18.6 replication): the origin's EventEnvelope.source value. Absent on records the serving implementation created itself. |
0..1 | String |
A.1.2 "Discovery" package
A.1.2.1 Location of "Discovery" package. The location of the "Discovery" package is:
-- APX/Discovery (source: spec/openapi/domains/discovery/schemas.yaml; normative text: APX Part 16)
A.1.2.2 Classes of the "Discovery" package
Table A.4 -- Classes of the "Discovery" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| ApxConfiguration | Apx configuration | Unauthenticated bootstrap configuration document. | class | APX only |
| DiscoveryDocument | Discovery document | What THIS credential can do: exactly the endpoints, commands, topics, and places reachable with the presented token's scopes and grants. Two clients with different grants receive different documents; a client can call everything its document lists and nothing more. | class | APX only |
A.1.2.3 Specializations of the "Discovery" package
There are no specializations in the "Discovery" package.
A.1.2.4 Associations of the "Discovery" package
Table A.5 -- Associations of the "Discovery" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| ApxConfiguration | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | |
| DiscoveryDocument | organisation | Organisation | The client's Organisation (token claim apx_org). | 0..1 | PkCommon.Reference | |
| uiSurfaces | Ui surfaces | The vendor screens this client may launch (Part 25 §25.1), each with its display and launch modes and the actions it reports back. Present only when the host implements apx-ui-launch and the client holds apx.ui:launch. |
0..* | UiLaunch.UiSurface | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.2.5 Attributes of the "Discovery" package
Table A.6 -- Attributes of the "Discovery" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| ApxConfiguration | apxVersion | Apx version | APX standard version implemented (semver). This is the edition (Part 3 §3.4) whose Parts and registries the implementation follows; when edition is also present the two are equal. |
1..1 | String | |
| edition | Edition | The APX edition implemented (Part 3 §3.4), as named in its spec/edition.json. |
0..1 | String | ||
| apdsVersion | Apds version | APDS version this implementation extends. | 1..1 | String | ||
| tokenEndpoint | Token endpoint | OAuth2 token endpoint (client-credentials grant). | 1..1 | Url | ||
| apiBase | Api base | The URL every path in the bundle is relative to (APX /v1/… and APDS-native routes alike). Absent means the origin root that serves this document. REQUIRED when the API is mounted elsewhere (Part 16 §16.1). |
0..1 | Url | ||
| conformanceClasses | Conformance classes | APX conformance classes this implementation supports, closed under the Part 3 §3.1 dependency table, plus any vendor classes (<vendor-ns>-<class>). Clients ignore classes they do not recognise. |
0..* | String | ||
| features | Features | Optional features the implementation offers — definedValues from apx-features or vendor features (Part 6 §6.5, Part 11, Part 16 §16.1). |
0..* | String (code list apx-features) | ||
| registries | Registries | Locations of the published UserDefinedCodeList registries, keyed by the registry name from Part 11 (vendor lists by their own name). |
0..1 | Map of Url | ||
| registryVersions | Registry versions | The version of each registry the implementation validates against, keyed as registries. |
0..1 | Map of Integer | ||
| DiscoveryDocument | client | Client | The OAuth client id this document was computed for. | 1..1 | String | |
| conformanceClasses | Conformance classes | Server classes usable by this client (intersection with its scopes). Always a subset of the bootstrap document's conformanceClasses (Part 16 §16.2). |
0..* | String | ||
| scopes | Scopes | The scopes of the presented token, reflected exactly (Part 16 §16.2). † | 0..* | String | ||
| places | Places | Granted HierarchyElement subtree roots (token claim apx_places), reflected exactly. Fail-closed semantics (Part 9 §9.3): an empty array means NO places; the explicit wildcard entry "*" means all places. A token with no apx_places claim is reflected as [], never by omitting the member (Part 16 §16.2). |
0..* | String | ||
| endpoints | Endpoints | Callable endpoints (APDS-native, APX, and vendor routes under /apx/x/<vendor-ns>/), each callable for at least one target inside the granted places (Part 16 §16.2). |
0..* | Structure (members below) | ||
| endpoints.path | Path | The OpenAPI path template exactly as it appears in the bundle (/v1/commands/{id}; APDS-native routes unchanged), relative to the bootstrap document's apiBase. |
1..1 | String | ||
| endpoints.methods | Methods | Upper-case HTTP method names. | 0..* | String | ||
| commandTypes | Command types | Command types this client may execute (empty without apx.control:execute). A permission list; what the host offers is features (Part 16 §16.2). |
0..* | String | ||
| features | Features | Optional features of claimed classes that this client may use (definedValues from apx-features, Part 11; Part 6 §6.5). Listed whenever the host offers the feature and the client holds a read or execute scope of the class, so a read-only client can see it too. |
0..* | String (code list apx-features) | ||
| placeCapabilities | Place capabilities | What each granted place can do, before a call (Part 16 §16.2): the command types the site executes, the surfaces offered there, and the optional features it supports. A site with no revenue control link lists no command types, so an agent knows to use the vendor's screen instead. Absent when every place offers the same as the document-level commandTypes, uiSurfaces and features. |
0..* | Structure (members below) | ||
| placeCapabilities.place | Place | The HierarchyElement subtree root the row applies to. | 1..1 | Uuid | ||
| placeCapabilities.commandTypes | Command types | The apx-command-types values this client may send at this place (Part 16 §16.2). † | 0..* | String | ||
| placeCapabilities.uiSurfaces | Ui surfaces | apx-ui-surfaces values offered at this place. | 0..* | String | ||
| placeCapabilities.features | Features | The apx-features values the implementation offers at this place. † | 0..* | String | ||
| topics | Topics | Topics this client may subscribe to: APX registry topics, APDS EventTypeEnum values (Part 8), and vendor topics (<vendor-ns>.). |
0..* | String | ||
| rateLimits | Rate limits | Advisory per-credential limits (Part 16 §16.2). Defined keys: requestsPerMinute, commandsPerMinute, burst (most requests in any one second), subscriptionsMax, streamConnectionsMax. Every value is a per-credential integer; other keys are advisory vendor additions. |
0..1 | Map of Integer | ||
| replication | Replication | Part 18 §18.6 — for a place this implementation shares with a replicated site or aggregator implementation, which side is authoritative for each entity class. A write to a class from the non-authoritative side is 409 not-authoritative. Absent when the implementation replicates nothing. |
0..* | Structure (members below) | ||
| replication.place | Place | The HierarchyElement subtree root the row applies to. | 1..1 | Uuid | ||
| replication.class | Class | An APDS class (Session, RateTable…) or APX resource class (Violation, Alert…). |
1..1 | String | ||
| replication.authority | Authority | Which side, site or aggregator, is authoritative for the class at the place (Part 18 §18.6). † | 1..1 | DiscoveryDocument.replication.authority (enumeration) | ||
| replication.peer | Peer | The other implementation's EventEnvelope.source. |
0..1 | String |
A.1.3 "Data" package
A.1.3.1 Location of "Data" package. The location of the "Data" package is:
-- APX/Data (source: spec/openapi/domains/data/schemas.yaml; normative text: APX Parts 5 and 18)
A.1.3.2 Classes of the "Data" package
Table A.7 -- Classes of the "Data" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| AssignedRightChangePayload | Assigned right change payload | A change-mode body for native PUT /rights/assigned/{id} (Part 5 §5.1a): id plus only the AssignedRight members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| ChangeFeedCursor | Change feed cursor | mode=change only. Opaque cursor resuming strictly after the last change in this page (Part 5 §5.2 rules 1, 2, 5). |
datatype | APX only |
| ChangeFeedGrantAdditions | Change feed grant additions | mode=change only. Present on the first page served after the credential's apx_places grant gained subtrees: the new subtree roots, which the client full-syncs with the route's place filter before relying on the feed for them (Part 5 §5.2 rule 7). |
list | APX only |
| ChangeFeedNext | Change feed next | mode=change only. Link to the next page when more changes are immediately available (the same request with this page's cursor); null otherwise. |
datatype | APX only |
| ChangeFeedPage | Change feed page | Response of a native APDS list route when called with mode=change. Items are VERBATIM APDS entities carrying only changed fields plus identity (change semantics per Part 5: explicit null = clear the field, absent = unchanged — generalizing APDS Use Case C.1.1.6). Deletions are APDS DeletedReferences (tombstones). |
class | APX only |
| ChangeFeedTombstones | Change feed tombstones | mode=change only. Resources removed since the cursor (retention purge, Part 9 §9.6; release of a moved place, Part 18 §18.4), as APDS DeletedReferences carrying the APX resource's schema name as className. Retained for the cursor window (Part 5 §5.2 rule 4). |
list | APX only |
| ChangeFeedUpdateMode | Change feed update mode | Present, with the value change, exactly when the page answers mode=change (Part 5 §5.2 rule 8); absent on an ordinary list page. |
datatype | APX only |
| ChangePayload | Change payload | A change-mode payload for any native APDS entity class (Part 5 §5.1): the entity's identity plus only the members that changed. An absent member is unchanged; an explicit null clears it. Nested objects that carry their own id (a Session segment, say) follow the same rule. |
class | APX only |
| ContactPointChangePayload | Contact point change payload | A change-mode body for native PUT /contacts/{contactId} (Part 5 §5.1a): id plus only the ContactPoint members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| HierarchyElementChangePayload | Hierarchy element change payload | A change-mode body for native PUT /places/{id} (Part 5 §5.1a): id plus only the HierarchyElement members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| MatchEvidence | Match evidence | How a link to a Session was established and how sure it is (Part 5 §5.8; shared by the matches[] member of apds-ext:apx:session-detail@1.0 and the decoration apds-ext:apx:match-evidence@1.0 on a Violation or ValetTicket). Carries no plate characters and no vehicle attribute values (Part 9 §9.6). Where both ends of one link carry evidence (the Session's matches[] entry and the decoration on the Violation or ValetTicket), the two MUST agree. Evidence with plate.method: lenient or applied: false may excuse a stay but never accuse one: issue on a Violation resting on it is 409 violation-not-issuable (Part 19 §19.4 rule 5). |
class | Proposed: MatchEvidence (Tier 3); Proposed: MatchTypeEnum (Tier 3); Proposed: MatchDecisionEnum (Tier 3) |
| ObservationElementChangePayload | Observation element change payload | A change-mode body for native PUT /observations/{id} (Part 5 §5.1a): id plus only the ObservationElement members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| OccupancyHistoryPage | Occupancy history page | Occupancy per clock interval for one HierarchyElement (Part 5 §5.5a): the history behind the §5.5 snapshot, derived from the APDS DemandTable records the implementation holds. Buckets are aligned to the interval boundary in the place's time zone; a bucket with no demand record carries no counts, never a guess. | class | Proposed: DemandType (Tier 3) |
| OccupancySnapshot | Occupancy snapshot | Current occupancy for one HierarchyElement, computed from the APDS occupancy model (Supply + DemandTable) that natively lives in the Place hierarchy. A convenience READ (Part 5 §5.5): the Place payload remains the source of truth; this answers "how full is it right now" without pulling the hierarchy. Composed entirely of verbatim APDS occupancy classes — APX adds no parallel occupancy datatypes. | class | APX only |
| RateTableChangePayload | Rate table change payload | A change-mode body for native PUT /rates/{id} (Part 5 §5.1a): id plus only the RateTable members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| RightSpecificationChangePayload | Right specification change payload | A change-mode body for native PUT /rights/specs/{id} (Part 5 §5.1a): id plus only the RightSpecification members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| SessionChangePayload | Session change payload | A change-mode body for native PUT /sessions/{id} (Part 5 §5.1a): id plus only the Session members that changed; an absent member is unchanged and an explicit null clears it. Every member present is checked against the class, and a member the class does not define is refused. Generated at build time (tools/change-payloads.mjs); the generic ChangePayload remains the shape of change-feed items. |
class | APX only |
| SessionClosure | Session closure | Why and how a Session ended (Part 5 §5.8). | class | Proposed: SessionClosure (Tier 1) |
| SessionDetail | Session detail | The apds-ext:apx:session-detail@1.0 decoration on an APDS Session (Part 5 §5.8): what the pairing of reads decided and APDS has no members for — the reads behind the visit, why and how it ended, the matches it rests on, and the parent visit of an area Session. Written with the native Session POST/PUT by an external pairing engine; a server that pairs reads itself SHOULD write the same block on its own Sessions. A plain APDS client ignores it. It adds no event topic and carries no plate characters. A write that breaks a consistency rule of §5.8 is 422 and nothing is written. |
class | Proposed: Session (Tier 1); Proposed: SessionLifecycleEnum (Tier 2) |
| SessionReadBinding | Session read binding | One LPR read attached to a Session by the pairing engine (Part 5 §5.8, member reads[] of apds-ext:apx:session-detail@1.0). |
class | Proposed: SessionRead (Tier 1); Proposed: SessionReadRoleEnum (Tier 1) |
| StayCompliance | Stay compliance | The apds-ext:apx:stay-compliance@1.0 decoration on an APDS Session (Part 5 §5.9): the outcome a compliance engine scored for the stay, and the policy it measured against. Written with the native Session POST/PUT by the engine; a server that scores stays itself SHOULD write the same block. The rules that produce the outcome stay in the engine. |
class | APX only |
A.1.3.3 Specializations of the "Data" package
There are no specializations in the "Data" package.
A.1.3.4 Associations of the "Data" package
Table A.8 -- Associations of the "Data" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| AssignedRightChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| ChangeFeedGrantAdditions | item | Item | mode=change only. Present on the first page served after the credential's apx_places grant gained subtrees: the new subtree roots, which the client full-syncs with the route's place filter before relying on the feed for them (Part 5 §5.2 rule 7). |
0..* | ||
| ChangeFeedPage | publisher | Publisher | The publishing Organisation. | 0..1 | PkCommon.Reference | |
| items | Items | Changed APDS entities of the route's class, each a change payload (identity plus only the changed members; Part 5 §5.1). | 0..* | Data.ChangePayload | ||
| deleted | Deleted | Tombstones for deleted entities. | 0..* | PkCommon.DeletedReference | ||
| ChangeFeedTombstones | item | Item | mode=change only. Resources removed since the cursor (retention purge, Part 9 §9.6; release of a moved place, Part 18 §18.4), as APDS DeletedReferences carrying the APX resource's schema name as className. Retained for the cursor window (Part 5 §5.2 rule 4). |
0..* | PkCommon.DeletedReference | |
| ContactPointChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| HierarchyElementChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| MatchEvidence | target | Target | The record at the other end of the link. In matches[]: an AssignedRight, a ValetTicket, a Violation, a PlateListEntry, or an Observation. In the decoration on a Violation or ValetTicket: the Session. |
1..1 | PkCommon.Reference | |
| ObservationElementChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| OccupancyHistoryPage | place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| OccupancySnapshot | place | Place | The HierarchyElement (Place, Level, Area, …) this snapshot describes. | 1..1 | PkCommon.Reference | |
| supply | Supply | The element's supply (verbatim APDS Supply). | 0..1 | Occupancy.Supply | ||
| demand | Demand | The latest area demand record (verbatim APDS DemandType — count, percentage, occupancyCalculation, recordDateTime). | 0..1 | Occupancy.DemandType | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| RateTableChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| RightSpecificationChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| SessionChangePayload | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | nullable |
| SessionDetail | reads | Reads | The reads attached to this Session. A read already bound as entry or exit to another Session of the same place is refused with 409 read-already-bound unless supersedes names that Session. A read naming no Observation visible to the caller is 422 reference-unknown. |
0..* | Data.SessionReadBinding | |
| supersedes | Supersedes | The Session whose reads this write takes over (a re-pairing). | 0..1 | PkCommon.Reference | ||
| closure | Closure | Why and how a Session ended (Part 5 §5.8). | 0..1 | Data.SessionClosure | ||
| matches | Matches | How a link to a Session was established and how sure it is (Part 5 §5.8; shared by the matches[] member of apds-ext:apx:session-detail@1.0 and the decoration apds-ext:apx:match-evidence@1.0 on a Violation or ValetTicket). Carries no plate characters and no vehicle attribute values (Part 9 §9.6). Where both ends of one link carry evidence (the Session's matches[] entry and the decoration on the Violation or ValetTicket), the two MUST agree. Evidence with plate.method: lenient or applied: false may excuse a stay but never accuse one: issue on a Violation resting on it is 409 violation-not-issuable (Part 19 §19.4 rule 5). |
0..* | Data.MatchEvidence | ||
| parent | Parent | The visit this area Session is part of (className Session). The parent's hierarchyElement MUST be an ancestor of this Session's (422 request-unprocessable otherwise). Consumers count visits by Sessions without parent; children still open when the parent ends SHOULD be closed no later than its actualEnd with endReason parentExit. |
0..1 | PkCommon.Reference | ||
| SessionReadBinding | observation | Observation | The APDS ObservationElement (className ObservationElement). |
1..1 | PkCommon.Reference | |
| StayCompliance | policy | Policy | The EnforcementPolicy, at its version, the evaluation used (Part 19 §19.10), whose stayGrace explains the result. Naming no policy visible to the caller is 422 reference-unknown. |
0..1 | PkCommon.VersionedReference |
A.1.3.5 Attributes of the "Data" package
Table A.9 -- Attributes of the "Data" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| AssignedRightChangePayload | id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| rightSpecification | Right specification | The RightSpecification the right was granted under. † | 0..1 | Object | nullable | |
| rightHolder | Right holder | The holder of the right. † | 0..1 | Object | nullable | |
| assignedRightIssuer | Assigned right issuer | The party that issued the right; server-assigned. † | 0..1 | Object | nullable | |
| issueMethod | Issue method | How the right's credential was issued: electronic, permit or ticket. † | 0..1 | Right.IssueMethodTypeEnum | nullable | |
| issuanceTime | Issuance time | The datetime this AssignedRight was issued. | 0..1 | DateTime | nullable | |
| minutesAvailable | Minutes available | Number of decimal minutes that are remaining for use under a specified AssignedRight. | 0..1 | Decimal | nullable | |
| minutesUsed | Minutes used | Number of decimal minutes that have been used under a specified AssignedRight. | 0..1 | Decimal | nullable | |
| totalMinutes | Total minutes | Number of decimal minutes that have been issued under a specified AssignedRight. | 0..1 | Decimal | nullable | |
| remainingValue | Remaining value | The value of the right not yet used. † | 0..1 | Object | nullable | |
| totalRightValue | Total right value | The total value of the right. † | 0..1 | Object | nullable | |
| instancesUsed | Instances used | The total number of instances that have been used under a specified RightSpecification. | 0..1 | Integer | nullable | |
| instancesAvailable | Instances available | The total number of instances that are available for use under a specified RightSpecification. | 0..1 | Integer | nullable | |
| totalInstances | Total instances | The total number of instances that have been issued under a specified AssignedRight. | 0..1 | Integer | nullable | |
| expiry | Expiry | The datetime when the specific AssignedRight expires, and is not longer available for use. | 0..1 | DateTime | nullable | |
| plannedUses | Planned uses | The planned future uses of the AssignedRight. † | 0..* | Object | nullable | |
| payments | Payments | The payments made for the AssignedRight. † | 0..* | Object | nullable | |
| monetaryValue | Monetary value | A record of the monetary value of the right and the service provider that sells it. † | 0..1 | Object | nullable | |
| ChangeFeedPage | publicationTime | Publication time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | |
| updateMode | Update mode | Marks the page as a change page; always change (Part 5 §5.2). † |
1..1 | String (fixed value "change") | ||
| cursor | Cursor | Opaque cursor to resume AFTER the last change in this page. | 1..1 | String | ||
| grantAdditions | Grant additions | Present on the first page served after the credential's apx_places grant gained subtrees (Part 5 §5.2 rule 7): the new subtree roots. The client MUST full-sync these subtrees before relying on the feed for them — the cursor does not retroactively cover their history. | 0..* | Uuid | ||
| next | Next | Link to the next page when more changes are immediately available; null otherwise. | 0..1 | String | nullable | |
| ChangePayload | id | Id | The entity's identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | On a write, the version the client last read (the precondition, Part 4 §4.2a); on a feed item, the version after the change. | 0..1 | Integer | ||
| ContactPointChangePayload | contactType | Contact type | Whether the contact carries its details or refers to an existing contact. † | 0..1 | PkCommon.ContactTypeEnum | nullable |
| contactNotDefined | Contact not defined | When true, there is currently no contact defined for the selected role and/or timeframe. Don't use the specialisations in this case. | 0..1 | Boolean | nullable | |
| contactUnknown | Contact unknown | When true, the contact for the selected role and/or timeframe is unknown. Don't use the specialisations in this case. | 0..1 | Boolean | nullable | |
| shareWithPublic | Share with public | When true, the details of this contact may be shared with the public. If false these contacts details are for internal purposes only. | 0..1 | Boolean | nullable | |
| validityOfContact | Validity of contact | The period during which the contact is valid. † | 0..1 | Object | nullable | |
| id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | ||
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| organisationName | Organisation name | The name of the organisation of the contact. † | 0..* | Object | nullable | |
| type | Type | Defines the supported lists of types of contact. * customerService : Contact details for parking customer support for a facility or specific entity * emergencyContact : Contact details for emergency assistance or support for a facility or specific entity specifically related to parking operations * enforcementSystemProvider : Contact details for the provider of the enforcement system * operator : Contact details for the parking operator for a facility or specific entity * owner : Contact details for the owner of a facility or specific entity. * propertyManager : Contact details for the property manager of a facility or related facility. * securityService : Contact details for security services for a facility or specific entity * serviceProvider : Contact details for a parking service provider (e.g. pay-by-mobile provider) | 0..1 | PkCommon.ContactPointTypeEnum | nullable | |
| address | Address | The addresses of the contact. † | 0..* | Object | nullable | |
| contactDetails | Contact details | Details for the person, service or parking site, especially address information. † | 0..* | Object | nullable | |
| eMailCommonData | E mail common data | The e-mail point of contact. † | 0..* | Object | nullable | |
| telephoneContacts | Telephone contacts | The telephone points of contact. † | 0..* | Object | nullable | |
| pointLocations | Point locations | The geographic location of the contact point. † | 0..* | Object | nullable | |
| HierarchyElementChangePayload | id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| type | Type | Defines the supported lists of types of parking hierarchy elements permissible * campus : a data structure holding information about a large, often ill-defined area, which may contain many parking structures. * identifiedArea : a data structure holding information about a coherent feature, such as a set of parking spaces that all share the same characteristics. * place : a data structure holding information about a single identifiable parking place. * space : a data structure holding information about a single space for parking, usually designed for one vehicle, which may be denoted by painted or other road surface markers. * subplaceElement : a sub-division of a place for the convenience of the operator that may be used for parking related or other purposes. * specificArea : a specialisation of an identified area that denotes a specific geographic area in a place that has a common physical infrastructure purpose and common characteristics. * vehicularAccess : a specialisation of an identified area defining vehicular access areas. * electricChargingEquipment : a specialisation of a supplemental facility for electric charging areas. * supplementalEquipment : a specialisation of a supplemental facility which is available on some site, for example on a rest area. * supplementalServiceFacility : a specialisation of a supplemental facility to specify the type and number of available sub-facilities, for example 20 restaurants. | 0..1 | Place.HierarchyElementTypeEnum | nullable | |
| name | Name | Name in natural language. | 0..* | Object | nullable | |
| description | Description | Free-text description. | 0..* | Object | nullable | |
| aliases | Aliases | Array of SpecificLanguageString objects representing multi language text. | 0..* | PkCommon.MultilingualString | nullable | |
| operatorDefinedReference | Operator defined reference | The operator's own reference for the element, the designated alias for a source identifier (Part 4 §4.1a). † | 0..1 | Object | nullable | |
| parentId | Parent id | The element directly above this one in the place hierarchy. † | 0..1 | Object | nullable | |
| childIds | Child ids | The child nodes directly related to this hierarchy element. † | 0..* | Object | nullable | |
| layer | Layer | Indicator of the position of this hierarchy element in the specific hierarchy, with the top of the hierarchy numbered layer 0. | 0..1 | Integer | nullable | |
| rightSpecifications | Right specifications | The RightSpecifications associated with the element. † | 0..* | Object | nullable | |
| hierarchyElementRecord | Hierarchy element record | Information concerning the creation of the hierarchy element. † | 0..1 | Object | nullable | |
| hierarchyElementReference | Hierarchy element reference | A unique reference identifier for this part of the place hierarchy. † | 0..1 | Object | nullable | |
| occupancyLevel | Occupancy level | The occupancy level of the element, as specified by the data supplier. † | 0..1 | Object | nullable | |
| responsibilityRoleAssignments | Responsibility role assignments | The roles and responsibilities for the element, such as its operator. † | 0..* | Object | nullable | |
| characteristics | Characteristics | Information concerning the characteristics of the parking facility. † | 0..1 | Object | nullable | |
| contacts | Contacts | Contact information for the hierarchy element. † | 0..* | Object | nullable | |
| marketing | Marketing | A link to marketing material for the facility. † | 0..1 | Object | nullable | |
| operatingRestrictions | Operating restrictions | The operating restrictions for the hierarchy element. † | 0..* | Object | nullable | |
| rgbColours | Rgb colours | Colours associated with the hierarchy element. † | 0..* | Object | nullable | |
| times | Times | The time periods of the facility, such as hours of operation, access and egress, and entrance and exit open times. † | 0..1 | Object | nullable | |
| paymentMethods | Payment methods | The payment methods accepted at the hierarchy element. † | 0..* | Object | nullable | |
| safetyStandardClassifications | Safety standard classifications | The safety standard classifications of the place. † | 0..* | Object | nullable | |
| timeZone | Time zone | IANA time-zone (see https://www.iana.org/time-zones) | 0..1 | String | nullable | |
| placeStreetAddress | Place street address | The street address of the place. † | 0..1 | Object | nullable | |
| placeBoundedZone | Place bounded zone | The geographic area bounding the place. † | 0..* | Object | nullable | |
| indicativePointLocation | Indicative point location | An indicative point location for the element. † | 0..* | Object | nullable | |
| spaceId | Space id | A reference identifying the space. † | 0..1 | Object | nullable | |
| detection | Detection | The method used to detect occupancy of the space by a vehicle. † | 0..1 | Occupancy.ParkingSpaceOccupancyDetectionEnum | nullable | |
| spaceBoundedZone | Space bounded zone | The geographic area of the space, as a GeoJSON object. † | 0..1 | Object | nullable | |
| spaceDimension | Space dimension | The dimensions of the space. † | 0..1 | Object | nullable | |
| spaceMaximumDims | Space maximum dims | The maximum physical dimensions for the space's defined purpose. † | 0..1 | Object | nullable | |
| MatchEvidence | matchType | Match type | The kind of link: right — an AssignedRight covers the stay; valet — a ValetTicket's stay; violation — a Violation's stay; list — a plate-list entry matched the vehicle (Part 24); exitPairing — an exit read paired to the Session's entry; sweep — the vehicle seen during an inventory or patrol sweep tied to the Session; other — anything else. |
1..1 | MatchEvidence.matchType (enumeration) | |
| plate | Plate | How the plate strings agreed, when the link rests on a plate. | 0..1 | Structure (members below) | ||
| plate.method | Method | exact — the same characters; alias — a plate the right or account lists for the same vehicle; fold — equal after folding look-alike characters (O/0, I/1, B/8); fuzzy — within the implementation's edit-cost threshold; lenient — accepted under a relaxed rule that may excuse a stay but never accuse one; reviewer — a person judged the plates to match where no automatic method did. |
1..1 | MatchEvidence.plate.method (enumeration) | ||
| plate.editCost | Edit cost | The weighted edit cost of a fuzzy or lenient match; null otherwise. |
0..1 | Decimal | nullable | |
| plate.jurisdiction | Jurisdiction | Issuing jurisdiction of the plate (state, province or country). | 0..1 | MatchEvidence.plate.jurisdiction (enumeration) | ||
| vehicle | Vehicle | The vehicle-attribute evidence (make, model, colour) behind the match, as a level and a score — never the values. | 0..1 | Structure (members below) | ||
| vehicle.level | Level | unknown — not compared; mismatch — the attributes contradict the match; inconclusive — compared, no signal; weak, good, strong — increasing support. |
1..1 | MatchEvidence.vehicle.level (enumeration) | ||
| vehicle.llr | Llr | Log-likelihood ratio of the vehicle evidence. | 0..1 | Decimal | ||
| vehicle.model | Model | The evidence model and version that scored it, opaque. | 0..1 | String | ||
| applied | Applied | False is a shadow match — recorded for evaluation, not acted on. A link the record actually carries has applied: true. |
1..1 | Boolean | ||
| decidedBy | Decided by | Whether software or a person made the link. A matchTicket that binds a lane-inquiry candidate SHOULD be recorded as person (Part 5 §5.8 rule 5). |
0..1 | MatchEvidence.decidedBy (enumeration) | ||
| decidedTime | Decided time | When the link was made. | 0..1 | PkCommon.DateTime | ||
| ObservationElementChangePayload | id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| method | Method | A list of the supported observation types. | 0..1 | Observation.ObservationTypeEnum | nullable | |
| observer | Observer | The individual person making the observation recorded in this observation element. | 0..1 | String | nullable | |
| type | Type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 0..1 | Right.CredentialTypeEnum | nullable | |
| observedCredentialId | Observed credential id | Specific identifier to the referenced observed credential. | 0..1 | String | nullable | |
| observationStartTime | Observation start time | The initial date and time of the observation. | 0..1 | DateTime | nullable | |
| observationEndTime | Observation end time | The ending date and time of the observation, when it was continous since observationStartTime. |
0..1 | DateTime | nullable | |
| description | Description | Free-text description. | 0..* | Object | nullable | |
| creationDateTime | Creation date time | The date and time stamp for the creation of the observation element. | 0..1 | DateTime | nullable | |
| location | Location | The location of the observation: where it was observed and where the observer was (APDS Data Dictionary, Observation package). † | 0..1 | Object | nullable | |
| images | Images | Still or moving images that are evidence for the observation, or references to such evidence. † | 0..* | Object | nullable | |
| elementIds | Element ids | The hierarchy element (for example a Place, Area or lane) at which the observation was made. † | 0..1 | Object | nullable | |
| vehicleAncillaryIdentification | Vehicle ancillary identification | Further identification of the observed vehicle, such as make, model and colour. † | 0..1 | Object | nullable | |
| observerOrganisation | Observer organisation | The organisation responsible for the observation. † | 0..1 | Object | nullable | |
| confidence | Confidence | Confidence in the value, from 0 to 1. | 0..1 | Object | nullable | |
| characterConfidence | Character confidence | Per-character confidence in the observed identifier, such as a plate read. † | 0..1 | Object | nullable | |
| OccupancyHistoryPage | interval | Interval | The bucket length as requested (ISO 8601 duration, e.g. PT1H). |
1..1 | PkCommon.Duration | |
| from | From | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| to | To | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| buckets | Buckets | The occupancy figures for each interval, aligned to the interval boundary in the place's time zone (Part 5 §5.5a). † | 0..* | Structure (members below) | ||
| buckets.start | Start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| buckets.maxCount | Max count | The highest demand count recorded in the bucket. | 0..1 | Integer | ||
| buckets.avgCount | Avg count | The time-weighted mean demand count over the bucket. | 0..1 | Decimal | ||
| buckets.supplyQuantity | Supply quantity | The supply in force during the bucket (APDS Supply.supplyQuantity). | 0..1 | Integer | ||
| buckets.samples | Samples | How many demand records the bucket is computed from. | 0..1 | Integer | ||
| OccupancySnapshot | computedAt | Computed at | When this snapshot was computed. | 1..1 | PkCommon.DateTime | |
| available | Available | Convenience derivation: supply.supplyQuantity − demand.count when both are known; null when either side is unknown. Never negative — overfull facilities clamp to 0 (the demand record still shows the true count). | 0..1 | Integer | nullable | |
| evCharging | Ev charging | Part 23 §23.7 — charging availability under this element, derived from ChargingPointStatus. Optional; present only when the implementation claims apx-charging. Counts are of charging points (APDS ElectricChargingEquipment), not connectors. Absent counts are unknown, never guessed. |
0..1 | Structure (members below) | ||
| evCharging.pointsTotal | Points total | The number of charging points under the element. † | 0..1 | Integer | ||
| evCharging.available | Available | Points with availability: available. |
0..1 | Integer | ||
| evCharging.charging | Charging | The number of charging points under the element that are charging. † | 0..1 | Integer | ||
| evCharging.occupiedNotCharging | Occupied not charging | Points occupied (cable connected, no energy) — includes complete and idle sessions. |
0..1 | Integer | ||
| evCharging.blocked | Blocked | Points whose bay holds a vehicle that is not plugged in, or is obstructed. | 0..1 | Integer | ||
| evCharging.inoperative | Inoperative | Points inoperative or outOfOrder. |
0..1 | Integer | ||
| RateTableChangePayload | id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| rateTableName | Rate table name | The name of the rate table. † | 0..* | Object | nullable | |
| rateTableID | Rate table ID | An identifier of the rate table. † | 0..* | Object | nullable | |
| availability | Availability | * private : Parking access is limited to known and authorized individuals. * public : Open to the public. * restricted : Open to the public but requires a direct purpose or permission to use from owner (e.g. Doctor's surgery, storefront...)" | 0..1 | Rates.RateAvailabilityTypeEnum | nullable | |
| rateResponsibleParty | Rate responsible party | The organisation responsible for fee collection under the rate table; server-assigned. † | 0..1 | Object | nullable | |
| rateSupersedeLink | Rate supersede link | The rate table that this rate table temporarily supersedes, for the duration set by its expiration times. † | 0..1 | Object | nullable | |
| validation | Validation | Indicates if validations are accepted when using this RateTable. | 0..1 | Boolean | nullable | |
| rateType | Rate type | The type of rates in the table: contract, daily, event or hourly. † | 0..1 | Rates.RateTypeEnum | nullable | |
| additionalInformation | Additional information | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | nullable | |
| validity | Validity | When the rate table is valid. † | 0..1 | Object | nullable | |
| rateLineCollections | Rate line collections | The rate line collections that define the rate table. † | 0..* | Object | nullable | |
| RightSpecificationChangePayload | id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| description | Description | Free-text description. | 0..* | Object | nullable | |
| type | Type | Defines the type of RightSpecification * accessPermission : intended grant access permission * loadingUnloading : intended granting permissions to load and unload vehicles. * oneTimeUseParking : intended for one time or limited parking usage * permitParking : intended for multi-use parking usage * setDownPickup : intended for passenger set down and pick up * waiting : intended to grant permission for an accompanied vehicle to wait | 0..1 | Right.RightSpecificationTypeEnum | nullable | |
| financialReference | Financial reference | Creator defined free-text reference to financial transactions associated to the specific Right Specification. | 0..1 | String | nullable | |
| transferable | Transferable | Whether the RightSpecification is available to be transferred between assigned right holders or users. † | 0..1 | Boolean | nullable | |
| transferableConditions | Transferable conditions | The conditions under which the RightSpecification may be transferred. † | 0..1 | Boolean | nullable | |
| credentials | Credentials | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 0..* | Right.CredentialTypeEnum | nullable | |
| validity | Validity | When the RightSpecification is valid. † | 0..1 | Object | nullable | |
| expiry | Expiry | Date/time showing the timestamp for when a RightSpecification ceases to be valid. | 0..1 | DateTime | nullable | |
| rightPools | Right pools | The pools sharing the number of AssignedRights available, in use or intended for use under the specification in given periods by a given issuer. † | 0..* | Object | nullable | |
| issuer | Issuer | The party that issues rights of this specification; server-assigned. † | 0..1 | Object | nullable | |
| hierarchyElements | Hierarchy elements | The places where the RightSpecification is available. † | 0..* | Object | nullable | |
| rateEligibility | Rate eligibility | The combinations of eligibility requirements and RateTables that apply to the RightSpecification. † | 0..* | Object | nullable | |
| rateTransition | Rate transition | The rate transition rules that apply to rights of this specification. † | 0..1 | Object | nullable | |
| SessionChangePayload | id | Id | The entity identifier (APDS VersionedIdentity.id). | 1..1 | String | |
| version | Version | Positive integer representing the object version. | 0..1 | Integer | nullable | |
| actualStart | Actual start | The date/time of the start of the session. | 0..1 | DateTime | nullable | |
| actualEnd | Actual end | The date/time of the end of the session. | 0..1 | DateTime | nullable | |
| initiator | Initiator | The party that initiated the session; server-assigned. † | 0..1 | Object | nullable | |
| hierarchyElement | Hierarchy element | The element of the place hierarchy where the session takes place. † | 0..1 | Object | nullable | |
| identifiedCredentials | Identified credentials | The credentials used for verification during the session. † | 0..* | Object | nullable | |
| segments | Segments | The segments that record changes of rate and assigned right during the session. † | 0..* | Object | nullable | |
| identifiedVehicle | Identified vehicle | The vehicle identified for the session. † | 0..1 | Object | nullable | |
| SessionClosure | endReason | End reason | definedValue from apx-session-end-reasons (Part 11) or an implementer code list. |
0..1 | String (code list apx-session-end-reasons) | |
| endInferred | End inferred | True when actualEnd was set by a rule rather than observed. |
0..1 | Boolean | ||
| startObserved | Start observed | False declares actualStart synthetic — an exit-only Session whose entry was never observed; the writer SHOULD then set actualStart equal to actualEnd. Consumers MUST exclude such Sessions from dwell statistics and from occupancy (Part 5 §5.8 rule 4). Absent means true. |
0..1 | Boolean | ||
| rule | Rule | The implementer rule that closed a stale Session (e.g. transient-48h); null when none applied. |
0..1 | String | nullable | |
| SessionDetail | lifecycle | Lifecycle | open — a vehicle is in the facility, no actualEnd yet; ended — closed, may still be revised; final — no further revision expected; disputed — under review. Every state but open requires actualEnd, and open forbids it (422 request-unprocessable otherwise). final is the writer's statement, never a lock: a server MUST NOT refuse a later revision on that ground. |
0..1 | SessionDetail.lifecycle (enumeration) | |
| flags | Flags | Open flags — entryUnknown, orphanExit, reentry, passThrough, or implementer values. |
0..* | String | ||
| passThrough | Pass through | An area stay shorter than the area's minimum dwell — never scored or billed. | 0..1 | Boolean | ||
| SessionReadBinding | role | Role | entry and exit are the passages that opened and closed the visit; duplicate is the same passage seen by another camera or frame; activity is the vehicle seen inside (a sweep, a bay camera). |
1..1 | SessionReadBinding.role (enumeration) | |
| representative | Representative | The read that stands for the visit in lists and screen-pops. At most one per Session; two are 422 request-unprocessable (Part 5 §5.8 rule 1). |
0..1 | Boolean | ||
| StayCompliance | status | Status | definedValue of apx-stay-compliance-statuses, or an implementer code. | 1..1 | String | |
| family | Family | The family of the status. For a registry status it MUST be the family the registry gives (422 request-unprocessable). compliant — rights or an exemption covered the stay violation — the stay was not covered as the policy requires withheld — not scored, or held back for review other — an outcome none of the other families fits, for example paid after exit |
1..1 | StayCompliance.family (enumeration) | ||
| pendingStatus | Pending status | The status the stay would have once a person confirms it; present only with status reviewRequired (422 request-unprocessable otherwise). |
0..1 | String | ||
| flags | Flags | Facts behind the status — definedValues of apx-stay-compliance-flags, or implementer codes. | 0..* | String | ||
| evaluatedTime | Evaluated time | When the evaluation ran. | 1..1 | PkCommon.DateTime | ||
| sequence | Sequence | Orders the evaluations of one Session. A write with a lower sequence than the one held is 409 evaluation-out-of-order; an equal one replaces it. |
1..1 | Integer | ||
| final | Final | The writer's statement that no further evaluation is expected; never a lock. | 0..1 | Boolean |
A.1.4 "Events" package
A.1.4.1 Location of "Events" package. The location of the "Events" package is:
-- APX/Events (source: spec/openapi/domains/events/schemas.yaml; normative text: APX Part 8)
A.1.4.2 Classes of the "Events" package
Table A.10 -- Classes of the "Events" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| ApxEventSubscription | Apx event subscription | Superset of the APDS 4.1 EventSubscription. A stock APDS client sending only {endpoint, topics} (EventTypeEnum values) gets stock behavior; the APX fields are additive and optional. |
class | APX only |
| ApxEventSubscriptionPatch | Apx event subscription patch | Body of PATCH /webhooks/{id}: a JSON Merge Patch (RFC 7396) over ApxEventSubscription. Members present replace the stored value, an explicit null clears an optional member, and absent members are unchanged — so {"status": "active"} alone resumes a subscription. version, when given, is the precondition (Part 4 §4.2a); a stale one is 409 version-conflict. id, activeKeyIds, and recordInfo are server-managed and cannot be patched. |
class | APX only |
| DeliveryAttempt | Delivery attempt | One delivery attempt of one event to one subscription. | class | APX only |
| DeliveryRecord | Delivery record | One entry in a subscription's delivery ledger. | class | APX only |
| SubscriptionFailure | Subscription failure | Data of apx.subscription.failed.v1 (Part 8 §8.3): which subscription stopped, where it was delivering, and the attempt that exhausted the schedule. The envelope subject references the same subscription. |
class | APX only |
| SubscriptionFilters | Subscription filters | Server-side delivery filtering. | class | APX only |
A.1.4.3 Specializations of the "Events" package
There are no specializations in the "Events" package.
A.1.4.4 Associations of the "Events" package
Table A.11 -- Associations of the "Events" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| ApxEventSubscription | filters | Filters | Server-side delivery filtering. | 0..1 | Events.SubscriptionFilters | |
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ApxEventSubscriptionPatch | filters | Filters | Replaces the stored filters; {} removes every filter. |
0..1 | Events.SubscriptionFilters | |
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| DeliveryRecord | attemptHistory | Attempt history | Every attempt so far, oldest first (Part 8 §8.3). deliveryId and lastCode above are those of the latest entry. The normative schedule makes at most 27 attempts per event. |
0..* | Events.DeliveryAttempt | |
| SubscriptionFailure | subscription | Subscription | The subscription (className ApxEventSubscription). |
1..1 | PkCommon.Reference |
A.1.4.5 Attributes of the "Events" package
Table A.12 -- Attributes of the "Events" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| ApxEventSubscription | id | Id | Assigned at creation; used with DELETE/PATCH /webhooks/{id}. | 0..1 | Uuid | |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 0..1 | Integer | ||
| endpoint | Endpoint | Client endpoint URL for webhook deliveries (required for transport=webhook). | 0..1 | PkCommon.Url | ||
| topics | Topics | APDS EventTypeEnum values (e.g. SessionCreated) and/or APX topics (apx.<domain>.<event>.vN) — freely mixed. | 1..* | String | ||
| transport | Transport | How events reach the subscriber: by webhook or by server-sent events stream (Part 8). † | 0..1 | ApxEventSubscription.transport (enumeration) | ||
| secret | Secret | HMAC signing secret (≥32 bytes of entropy, used as raw UTF-8 key material; shorter is 400 invalid-request). For transport: webhook only: server-generated when absent and returned EXACTLY ONCE — in the Prefer=representation creation response. Never present in GET/PATCH responses. An SSE subscription has nothing to sign and gets no secret (Part 8 §8.1). |
0..1 | String | ||
| secretRef | Secret ref | Identifier of an out-of-band-exchanged secret (Part 9 §9.4) — supply INSTEAD of secret when key material must never transit the API. Never a secret value itself. |
0..1 | String | write-only | |
| keyId | Key id | Identifier the client chooses for the key it supplies with secret or secretRef; deliveries signed with that key carry it in APX-Key-Id. Server-assigned when absent (Part 8 §8.1). |
0..1 | String | write-only | |
| retireKeyIds | Retire key ids | PATCH only: key ids to retire now, ending a rotation overlap early. Retiring the last active key is 400 invalid-request. Without it, the server retires the superseded key 24 hours after the rotation (Part 8 §8.1). |
0..* | String | write-only | |
| activeKeyIds | Active key ids | Identifiers of the currently valid signing keys — two entries during a rotation overlap window, matching deliveries' APX-Key-Id header (Part 9 §9.4). | 0..* | String | read-only | |
| status | Status | active delivers; paused holds matching events for up to 24 hours and delivers them in order on resume (Part 8 §8.1); failed is server-assigned when the retry schedule is exhausted (a client setting it is 400 invalid-request). PATCH status: active to resume a paused or failed subscription. |
0..1 | ApxEventSubscription.status (enumeration) | ||
| ApxEventSubscriptionPatch | version | Version | The version the client last read. | 0..1 | Integer | |
| endpoint | Endpoint | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| topics | Topics | The topics the subscription delivers, replacing the stored list. † | 0..* | String | ||
| transport | Transport | How events reach the subscriber: by webhook or by server-sent events stream (Part 8). † | 0..1 | ApxEventSubscriptionPatch.transport (enumeration) | ||
| secret | Secret | A new signing secret; starts a rotation overlap (Part 8 §8.1). | 0..1 | String | ||
| secretRef | Secret ref | A reference to a new signing secret exchanged out of band, never the secret itself; starts a key rotation (Part 9 §9.4). † | 0..1 | String | write-only | |
| keyId | Key id | The name the client gives the new signing key; the server assigns one when absent (Part 8 §8.1). † | 0..1 | String | write-only | |
| retireKeyIds | Retire key ids | The signing keys to retire, ending a rotation overlap (Part 8 §8.1). † | 0..* | String | write-only | |
| status | Status | active or paused — the client-settable states. failed is server-assigned; a PATCH setting it is 400 invalid-request. |
0..1 | ApxEventSubscriptionPatch.status (enumeration) | ||
| DeliveryAttempt | deliveryId | Delivery id | The attempt's APX-Delivery-Id (unique per attempt). |
1..1 | Uuid | |
| time | Time | When the attempt was sent — also its APX-Timestamp (each attempt is signed afresh, Part 8 §8.3). |
1..1 | PkCommon.DateTime | ||
| code | Code | HTTP status code received (0 = network error or timeout). | 1..1 | Integer | ||
| DeliveryRecord | deliveryId | Delivery id | The APX-Delivery-Id of the latest delivery attempt (Part 8 §8.3). † |
1..1 | Uuid | |
| eventId | Event id | EventEnvelope.id delivered (stable across retries). | 1..1 | Uuid | ||
| attempts | Attempts | The number of delivery attempts made for the event so far (Part 8 §8.3). † | 1..1 | Integer | ||
| status | Status | Whether the event was delivered, is still being retried, or failed. † | 1..1 | DeliveryRecord.status (enumeration) | ||
| lastCode | Last code | Last HTTP status code received from the endpoint (0 = network error). | 0..1 | Integer | ||
| time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| SubscriptionFailure | endpoint | Endpoint | The endpoint that stopped answering (webhook transport). | 0..1 | PkCommon.Url | |
| failedTime | Failed time | When the subscription entered failed. |
1..1 | PkCommon.DateTime | ||
| firstFailedEventId | First failed event id | EventEnvelope.id of the first event that could not be delivered. | 0..1 | Uuid | ||
| attempts | Attempts | Attempts made for that event before the schedule was exhausted. | 0..1 | Integer | ||
| lastCode | Last code | The last HTTP status code received (0 = network error). | 0..1 | Integer | ||
| SubscriptionFilters | places | Places | Only events bound to these HierarchyElement subtrees are delivered (Part 8 §8.5). Every entry must lie inside the token's apx_places grant, else 403 insufficient-grant. |
0..* | Uuid | |
| severityFloor | Severity floor | For alert topics — minimum severity delivered. | 0..1 | SubscriptionFilters.severityFloor (enumeration) | ||
| alertTypes | Alert types | For alert topics — only alerts whose alertType is listed are delivered (Part 8 §8.5a). Values are apx-alert-types entries or implementer types; combines with severityFloor (both must hold). |
0..* | String (code list apx-alert-types) |
A.1.5 "Control" package
A.1.5.1 Location of "Control" package. The location of the "Control" package is:
-- APX/Control (source: spec/openapi/domains/control/schemas.yaml; normative text: APX Part 6)
A.1.5.2 Classes of the "Control" package
Table A.13 -- Classes of the "Control" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| Approval | Approval | Approval evidence, REQUIRED on a write whose AllowedAction said requiresApproval (Part 17 §17.3). Servers MUST reject a requires-approval action without it (403 approval-required). One shared shape for control commands and domain actions (e.g. refunds). | class | APX only |
| Command | Command | A request for an operational action against a lane/device/place. Perishable (expiryTime), idempotent (Idempotency-Key), fully audited (immutable statusHistory). | class | APX only |
| CommandResult | Command result | The structured outcome of a command, populated by the server when the command reaches succeeded (Part 6 §6.1a) and absent before then. Members are normative per command type: lostTicket → ticketNumber, session, amountDue; matchTicket → session, amountDue; pushNegotiatedRate → amountDue, and rateTable when a table was selected (absent for a stated amount, which the lane inquiry reports as currentTicket.negotiatedAmount). Other command types leave it absent unless a registry entry says otherwise. It restates what the lane inquiry shows, so a console can continue (print, take payment) without parsing statusHistory[].detail or making a second call. |
class | APX only |
| DeviceStatus | Device status | Live state overlay keyed by Reference to an APDS SupplementalEquipment — never duplicates its descriptive fields. APDS 4.1 has no general equipment status list: its RefillPointStatusEnum (Data Dictionary A.3.53) covers refill points only and is absent from apds-api-4.1.yaml. deviceState values come from the APX registry apx-device-states, which follows that enumeration's style and shares its available, occupied, inoperative and unknown values. Attachable to APDS payloads as apds-ext:apx:devicestatus@1.0. | class | Proposed: EquipmentStatus (Tier 1) |
| DisplayProof | Display proof | What a sign or display confirmed it showed, and when (Part 6 §6.1a): CommandResult.display for a commanded message, and the proof members of a Part 26 §26.9 DisplayRecord for any message. Carries a hash and the wording version, never the message text. |
class | APX only |
| LaneStatus | Lane status | The transaction context at a lane right now (the call-center screen-pop). Composes APDS references and data; adds no parallel entities. | class | APX only |
| MatchCandidate | Match candidate | An open session at the place that plausibly belongs to the vehicle in the lane (Part 6 §6.7). Produced by the lane inquiry from the lane's own LPR read, a presented credential, the account registry (by plate or phone), or a checked-in reservation. Composes APDS references; adds no parallel session store. Advisory until a matchTicket command binds one. | class | APX only |
| RatePolicy | Rate policy | Level B decoration on an APDS RateTable, carried in its extensions container as apds-ext:apx:ratepolicy@1.0 (Part 6 §6.6). APDS models the rate deck completely; it has no way to say which tables an agent may offer as a negotiated rate. This is that flag — and because it rides inside the RateTable, every consumer mirroring the deck through the native /rates route (Part 5 §5.2) receives it with the table, no second query. APX deliberately defines NO selection rules here (length of stay, time of day, caller type): the system presenting the deck to an agent or a third party applies its own guardrails. The server's only rule is enforcement — a pushNegotiatedRate naming a table that is not flagged negotiable is refused (422 rate-not-negotiable). |
class | Proposed: RateTable (Tier 2) |
| ValidationProvider | Validation provider | A venue/organisation allowed to validate tickets at a place. | class | APX only |
A.1.5.3 Specializations of the "Control" package
There are no specializations in the "Control" package.
A.1.5.4 Associations of the "Control" package
Table A.14 -- Associations of the "Control" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| Approval | approvalRequest | Approval request | The Part 17 §17.3a ApprovalRequest whose decision this evidence cites, when the approval was asked for through APX. | 0..1 | PkCommon.Reference | |
| Command | target | Target | Reference to the target — SupplementalEquipment (device) or a VehicularAccess/Place HierarchyElement (lane/place scope). | 1..1 | PkCommon.Reference | |
| requestedBy | Requested by | The organisation requesting the action (defaults to the token's apx_org). | 0..1 | PkCommon.Reference | ||
| resolutionContext | Resolution context | The ResolutionContext this command resolves (Part 17) — links the action into the interaction's audit chain. | 0..1 | PkCommon.Reference | ||
| approval | Approval | Approval evidence, REQUIRED on a write whose AllowedAction said requiresApproval (Part 17 §17.3). Servers MUST reject a requires-approval action without it (403 approval-required). One shared shape for control commands and domain actions (e.g. refunds). | 0..1 | Control.Approval | ||
| result | Result | The structured outcome of a command, populated by the server when the command reaches succeeded (Part 6 §6.1a) and absent before then. Members are normative per command type: lostTicket → ticketNumber, session, amountDue; matchTicket → session, amountDue; pushNegotiatedRate → amountDue, and rateTable when a table was selected (absent for a stated amount, which the lane inquiry reports as currentTicket.negotiatedAmount). Other command types leave it absent unless a registry entry says otherwise. It restates what the lane inquiry shows, so a console can continue (print, take payment) without parsing statusHistory[].detail or making a second call. |
0..1 | Control.CommandResult | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| CommandResult | session | Session | The APDS Session the ticket belongs to (lostTicket, matchTicket). | 0..1 | PkCommon.Reference | |
| amountDue | Amount due | The amount due on the ticket immediately after the command. | 0..1 | Rates.AmountInCurrency | ||
| rateTable | Rate table | The RateTable at the exact version applied (pushNegotiatedRate with a table; absent for a stated amount). | 0..1 | PkCommon.VersionedReference | ||
| display | Display | Proof of display for displayMessage (Part 6 §6.1a): what the device confirmed it showed, when, and whether the player or an operator acknowledged it. A Part 26 §26.9 DisplayRecord that names this command MUST agree with it. |
0..1 | Control.DisplayProof | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| DeviceStatus | device | Device | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| LaneStatus | lane | Lane | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| currentTicket.session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| currentTicket.amountDue | Amount due | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| currentTicket.validations.provider | Provider | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| currentTicket.validations.amountReduced | Amount reduced | The ACTUAL value this validation removed from the amount due (dispute evidence). | 0..1 | Rates.AmountInCurrency | ||
| currentTicket.lpr.observation | Observation | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| currentTicket.negotiatedRate.rateTable | Rate table | The RateTable selected (VersionedReference — the exact version applied). | 1..1 | PkCommon.VersionedReference | ||
| currentTicket.negotiatedRate.command | Command | The pushNegotiatedRate Command that applied it — carries agent, reason, and the audit trail. |
1..1 | PkCommon.Reference | ||
| currentTicket.negotiatedRate.policy | Policy | The table's apds-ext:apx:ratepolicy@1.0 decoration as it stood when applied (its displayName is what the agent saw). |
0..1 | Control.RatePolicy | ||
| currentTicket.negotiatedAmount.amount | Amount | The amount stated, as the command's parameters.amount. |
1..1 | Rates.AmountInCurrency | ||
| currentTicket.negotiatedAmount.command | Command | The pushNegotiatedRate Command that applied it — the audit trail. | 1..1 | PkCommon.Reference | ||
| currentTicket.matchedCommand | Matched command | When this ticket was bound to an open session by a matchTicket command (Part 6 §6.7), the Command that made the match — carries agent, parameters.evidence, and the audit trail. Absent for a ticket physically inserted at the lane. |
0..1 | PkCommon.Reference | ||
| matchCandidates | Match candidates | Open sessions at this lane's place that plausibly belong to the vehicle in the lane, best first (Part 6 §6.7). Computed when the lane has no ticket in the machine, or whenever the caller passes a plate, phone, or credential lookup parameter. ADVISORY: the agent confirms with the driver; the server never binds a candidate without a matchTicket command. |
0..* | Control.MatchCandidate | ||
| monthlyCredential.credential | Credential | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| monthlyCredential.recentEvents.lane | Lane | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| MatchCandidate | session | Session | The open APDS Session this candidate proposes. | 1..1 | PkCommon.Reference | |
| entryLane | Entry lane | The VehicularAccess the session entered through. | 0..1 | PkCommon.Reference | ||
| evidence | Evidence | The record that produced the match — the entry Observation, the Credential, the RightHolder account, or the AssignedRight — so the agent can show it and the matchTicket command can cite it. | 0..1 | PkCommon.Reference | ||
| amountDueIfMatched | Amount due if matched | What the exit would price at from this session's true entry time — so the agent can tell the driver before matching. | 0..1 | Rates.AmountInCurrency | ||
| ValidationProvider | provider | Provider | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| program | Program | The ValidationProgram this row is derived from, when the server claims apx-validations (Part 20) — additive; absent otherwise. |
0..1 | PkCommon.Reference | ||
| benefit.amount | Amount | Fixed money off. | 0..1 | Rates.AmountInCurrency |
A.1.5.5 Attributes of the "Control" package
Table A.15 -- Attributes of the "Control" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| Approval | approvedBy | Approved by | The approving principal (role per AllowedAction.approvalRole). | 1..1 | String | |
| approvedAt | Approved at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| Command | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| commandType | Command type | definedValue from apx-command-types (vendGate, lostTicket, pushRate, applyValidation, pushNegotiatedRate, matchTicket, …). | 1..1 | String | ||
| parameters | Parameters | Command-type-specific parameters. Normative parameter schemas per commandType are given in Part 6 (e.g. lostTicket.method, pushRate.rateTable VersionedReference, applyValidation.ticket + provider, displayMessage.message, setDeviceState.state, pushNegotiatedRate.rateTable VersionedReference to a RateTable flagged negotiable, or pushNegotiatedRate.amount AmountInCurrency (any amount the agent states, where the host offers the negotiatedAmounts feature), matchTicket.session + evidence, resetPassback/forceIn/forceOut.credential, courtesyExit.holder). | 0..1 | Object | ||
| agent | Agent | Opaque principal of the human or AI agent who initiated the command (mirrors SupportInteraction.agent, Part 17 §17.6). Distinct from requestedBy (the organisation) and from approval.approvedBy (the approver). REQUIRED for pushNegotiatedRate and matchTicket (Part 6 §6.6–6.7): who selected the rate, who made the match. | 0..1 | String | ||
| agentType | Agent type | Whether agent is a person or an AI agent (mirrors SupportInteraction.agentType). |
0..1 | Command.agentType (enumeration) | ||
| reason | Reason | Free-text or code-list reason for the action (audit). | 0..1 | String | ||
| resolutionContextVersion | Resolution context version | The version of the ResolutionContext whose allowed actions this write was checked against, recorded by the server so the decision stays reconstructible after the context is recomputed or expires (Part 17 §17.2). |
0..1 | Integer | read-only | |
| correlationId | Correlation id | Correlation chain id (Part 17 §17.7) — one id connects call → context → command → events → support interaction. | 0..1 | Uuid | ||
| expiryTime | Expiry time | Commands are perishable — MUST NOT be dispatched after this instant. | 0..1 | PkCommon.DateTime | ||
| priority | Priority | Priority of the command. ‡ | 0..1 | Command.priority (enumeration) | ||
| status | Status | The command's lifecycle state (Part 6 §6.1). † | 1..1 | Command.status (enumeration) | read-only | |
| confirmationLevel | Confirmation level | How far success is actually confirmed (Part 6 §6.1): the command was accepted; the device acknowledged it; or the physical outcome was verified (e.g. gate-state sensor). Consumers — AI agents especially — MUST NOT claim a physical outcome ("the gate is open") beyond this level ("the open command was accepted"). | 0..1 | Command.confirmationLevel (enumeration) | read-only | |
| statusHistory | Status history | Immutable, append-only lifecycle audit — THE audit trail (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The command status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| CommandResult | ticketNumber | Ticket number | The ticket the command issued or bound (lostTicket). | 0..1 | String | |
| DeviceStatus | deviceState | Device state | definedValue from apx-device-states. | 1..1 | String | |
| lastCommunication | Last communication | When the device last reported; an agent reads "offline since" from it (Part 6 §6.4). | 0..1 | PkCommon.DateTime | ||
| stateChangedTime | State changed time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| fault | Fault | The current fault, when deviceState is fault or inoperative and the device reports one (Part 6 §6.4). |
0..1 | Structure (members below) | ||
| fault.code | Code | The implementation's fault code, as the device reports it. | 1..1 | String | ||
| fault.displayText | Display text | What the device shows or what the technician reads for the code. | 0..1 | String | ||
| fault.since | Since | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| consumables | Consumables | Supply levels the device reports (Part 6 §6.4). low or empty raises the Part 7 consumableLow alert. |
0..* | Structure (members below) | ||
| consumables.kind | Kind | Which consumable the level is reported for (Part 6 §6.4). † | 1..1 | DeviceStatus.consumables.kind (enumeration) | ||
| consumables.level | Level | How much of the consumable is left, as a level, not a count. † | 1..1 | DeviceStatus.consumables.level (enumeration) | ||
| maintenanceMode | Maintenance mode | The device is under test or maintenance; calls and events from it are excluded from service figures (Part 6 §6.4). | 0..1 | Boolean | ||
| DisplayProof | shownTime | Shown time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | |
| contentHash | Content hash | Hash of the rendered content, so a dispute can prove what was shown. | 0..1 | String | ||
| wordingVersion | Wording version | The wording version the template was rendered under. | 0..1 | String | ||
| screenshot | Screenshot | Access-controlled link to a capture of the display (Part 9 §9.6). | 0..1 | PkCommon.Url | ||
| acknowledgedBy | Acknowledged by | Acknowledged by of the display proof. ‡ | 0..1 | DisplayProof.acknowledgedBy (enumeration) | ||
| LaneStatus | currentTicket | Current ticket | The ticket/credential currently in the machine, if any. | 0..1 | Structure (members below) | |
| currentTicket.ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| currentTicket.issuedTime | Issued time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| currentTicket.paidInFull | Paid in full | Whether the amount due on the ticket has been paid in full. † | 0..1 | Boolean | ||
| currentTicket.validations | Validations | The validations applied to the ticket, each with its provider and the actual amount reduced. † | 0..* | Structure (members below) | ||
| currentTicket.validations.providerName | Provider name | Human-readable vendor name (from the place's ValidationProvider list). | 0..1 | String | ||
| currentTicket.validations.validationType | Validation type | The provider's validation type at time of application. | 0..1 | String | ||
| currentTicket.validations.validationId | Validation id | Unique id of this applied validation — maps to APDS Segment.validationId. | 0..1 | String | ||
| currentTicket.validations.appliedTime | Applied time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| currentTicket.lpr | Lpr | Latest plate read at this lane (APDS Observation-derived). | 0..1 | Structure (members below) | ||
| currentTicket.lpr.plate | Plate | Vehicle license plate text as read or entered. | 0..1 | String | ||
| currentTicket.lpr.confidence | Confidence | Confidence in the value, from 0 to 1. | 0..1 | Decimal | ||
| currentTicket.lpr.imageLink | Image link | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| currentTicket.negotiatedRate | Negotiated rate | The negotiated rate in effect on this ticket, if a pushNegotiatedRate command that selected a RateTable succeeded for it (Part 6 §6.6). Absent when the ticket prices from the lane's normal rate deck, and absent when the agent stated an amount instead (see negotiatedAmount). At most one of negotiatedRate and negotiatedAmount is present: the latest succeeded pushNegotiatedRate for the ticket decides which. |
0..1 | Structure (members below) | ||
| currentTicket.negotiatedRate.agent | Agent | The principal who selected the rate (copied from the command for the screen-pop). | 0..1 | String | ||
| currentTicket.negotiatedAmount | Negotiated amount | The amount an agent stated for this ticket, if a pushNegotiatedRate command carrying parameters.amount succeeded for it (the negotiatedAmounts feature, Part 6 §6.3, §6.6). Absent otherwise. It is what the ticket owes, not a discount. At most one of negotiatedRate and negotiatedAmount is present: the latest succeeded pushNegotiatedRate for the ticket decides which. |
0..1 | Structure (members below) | ||
| currentTicket.negotiatedAmount.reason | Reason | The command's reason, copied for the screen-pop. |
1..1 | String | ||
| currentTicket.negotiatedAmount.agent | Agent | The principal who stated the amount (the command's agent), copied for the screen-pop. |
1..1 | String | ||
| monthlyCredential | Monthly credential | Monthly-parker credential context at the lane, if presented. | 0..1 | Structure (members below) | ||
| monthlyCredential.cardNumber | Card number | The access credential number presented, not a payment card number. † | 0..1 | String | ||
| monthlyCredential.accessGranted | Access granted | Whether access was granted to the presented credential. † | 0..1 | Boolean | ||
| monthlyCredential.denialReason | Denial reason | When access is denied — definedValue from apx-access-denial-reasons or an implementer code list (Part 11), the same vocabulary as Part 21 access events. |
0..1 | String (code list apx-access-denial-reasons) | ||
| monthlyCredential.lastActivity | Last activity | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| monthlyCredential.recentEvents | Recent events | The last 10 activity events on this credential (trend view). | 0..10 | Structure (members below) | ||
| monthlyCredential.recentEvents.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| monthlyCredential.recentEvents.event | Event | The kind of activity recorded, such as entry or exit. † | 0..1 | String | ||
| MatchCandidate | ticketNumber | Ticket number | The entry ticket number, if a ticket was issued at entry. | 0..1 | String | |
| entryTime | Entry time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| plate | Plate | The plate recorded on the session at entry, if any. | 0..1 | String | ||
| matchedBy | Matched by | How this candidate was found: the lane's LPR read against the entry read (plateRead); a credential presented at the lane (credential); the account registry by plate or phone (account); a checked-in reservation carrying the plate (reservation). | 1..1 | MatchCandidate.matchedBy (enumeration) | ||
| confidence | Confidence | Server's confidence that this is the vehicle in the lane (a plate-read match projects APDS Confidence.overallConfidence). | 1..1 | Decimal | ||
| imageLink | Image link | The entry image, for visual confirmation (access-controlled per Part 9 §9.6). | 0..1 | PkCommon.Url | ||
| RatePolicy | negotiable | Negotiable | Whether this RateTable MAY be selected by a pushNegotiatedRate command. | 1..1 | Boolean | |
| displayName | Display name | Short agent-facing label for the table when offered as a negotiated rate (e.g. "Customer-service flat $20"). | 0..1 | String | ||
| note | Note | Free-text guidance for the presenting system or agent. Informative — never evaluated by the server. | 0..1 | String | ||
| ValidationProvider | name | Name | Name in natural language. | 0..1 | String | |
| validationType | Validation type | e.g. flat discount, hours comped — implementer code list. | 0..1 | String | ||
| benefit | Benefit | What the validation is WORTH — disclosed in the lookup so agents can answer disputes. Exactly one of amount (money off), duration (comped time, priced at the applicable rate), or percentage (proportionate discount) applies. | 0..1 | Structure (members below) | ||
| benefit.description | Description | Human-readable statement of the benefit. | 1..1 | String | ||
| benefit.duration | Duration | Comped parking time (ISO 8601), valued at the applicable rate. | 0..1 | PkCommon.Duration | ||
| benefit.percentage | Percentage | Proportionate discount on the amount due, mirrored from a percentage ValidationProgram (Part 20 §20.1). | 0..1 | Decimal |
A.1.6 "SiteConfiguration" package
A.1.6.1 Location of "SiteConfiguration" package. The location of the "SiteConfiguration" package is:
-- APX/SiteConfiguration (source: spec/openapi/domains/siteconfig/schemas.yaml; normative text: APX Part 26)
A.1.6.2 Classes of the "SiteConfiguration" package
Table A.16 -- Classes of the "SiteConfiguration" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| CameraDetail | Camera detail | A camera anywhere on the site, not only on a lane (Part 26 §26.3). Carried on a SupplementalEquipment whose EquipmentDetail role is camera, as the Level B decoration apds-ext:apx:camera@1.0. Where the camera is (area, level, lane) and what it is built into (builtInto) are EquipmentDetail members, shared with every other piece of hardware; this decoration adds how it is mounted, what it looks at, and how it can be viewed. It holds no addresses, usernames or passwords: a view is obtained through POST /v1/cameras/{id}/views and the password never leaves the site (Part 26 §26.3). Camera models and stream profiles follow ONVIF (Profile S, Profile T) and are not redefined. apds-ext:apx:lane-cameras@1.0 (Part 13) is unchanged. |
class | Proposed: Camera (Tier 2); Proposed: CameraMountingEnum (Tier 2); Proposed: CameraViewEnum (Tier 2) |
| CameraView | Camera view | A single-use, short-lived link to a camera's live stream, a still, or a recording (Part 26 §26.3). Bound to the agent it was issued to and logged against the correlationId; it expires at expiresAt, never more than 5 minutes after issue, and it never contains a camera credential. |
class | APX only |
| CameraViewRequest | Camera view request | Asks for a short-lived link to see a camera (Part 26 §26.3). Whoever holds the camera answers, the PARCS, the video system or an on-site gateway, and the camera's password never leaves the site. playback needs from and to and the cameraPlayback feature. |
class | APX only |
| CommsPoint | Comms point | Any way a parker reaches help from a lane or a location (Part 26 §26.4): an intercom, an analog dialler, a posted phone number, a kiosk, a QR code, an app. A call platform matches an inbound contact to a comms point by the number it calls out as (callerId), the number it called (phoneNumber), or its own device id (commsDeviceId), and APX then answers with the lane, or with the location only when the comms point serves no single lane (a posted number shared by many lanes can never name the lane by itself). |
class | Proposed: CommsPoint (Tier 3) |
| DisplayRecord | Display record | The record that a sign showed a message (Part 26 §26.9): which sign, which kind of message, when, and for which read or stay. Written by whichever system drove the display, the edge controller, the PARCS or the sign's own player, often with no APX command involved; immutable once written. It is the proof of display a refused-service message needs (Part 24 §24.4), and the data an operator measures the signs by. | class | APX only |
| EquipmentDetail | Equipment detail | What a piece of hardware is, where it is, and what it does (Part 26 §26.1). Carried on an APDS SupplementalEquipment as the Level B decoration apds-ext:apx:equipment-detail@1.0 in its extensions container (Part 4 §4.3). The equipment TYPE stays the APDS EquipmentTypeEnum (often paymentMachine or other); role says what the item does on the site, from the fixed code list apx-equipment-roles. |
class | Proposed: SupplementalEquipment (Tier 2) |
| EquipmentRecord | Equipment record | An APDS SupplementalEquipment as APX serves it (Part 26 §26.1): the stock APDS record plus its extensions container, which carries the apds-ext:apx:equipment-detail@1.0 decoration (REQUIRED on every record this class serves), apds-ext:apx:camera@1.0 on a camera, and apds-ext:apx:external-ids@1.0 where other systems have ids for it. The APDS record itself is never reshaped. |
class | APX only |
| ExternalIdentifiers | External identifiers | The ids other systems use for the same place, lane or equipment (Part 26 §26.6). Carried on any HierarchyElement as the Level B decoration apds-ext:apx:external-ids@1.0. APDS SupplementalFacility.externalIdentifiers holds untyped strings; here each id says which system issued it. system is a URI the issuer owns, usually its own domain, so APX names no products or platforms. POST /v1/identifiers:resolve finds the APX record from such an id. |
class | APX only |
| IdentifierResolution | Identifier resolution | The APX record an external id names (Part 26 §26.6). | class | APX only |
| IdentifierResolveRequest | Identifier resolve request | An external id to look up (Part 26 §26.6), as it appears in an ExternalIdentifiers entry. | class | APX only |
| PlaceOperations | Place operations | Operational facts about a place that a call centre needs before a call (Part 26 §26.5). Carried on a place HierarchyElement as the Level B decoration apds-ext:apx:place-operations@1.0. escalationContacts lists roles in calling order, never names or phone numbers: the call platform holds those, so APX carries no personal contact data. A Part 17 approval request is addressed to a role from this list. |
class | APX only |
A.1.6.3 Specializations of the "SiteConfiguration" package
Table A.17 -- Specializations of the "SiteConfiguration" package
| Class name | Parent class name |
|---|---|
| CommsPoint | Common.ApxResourceCore |
| DisplayRecord | Common.ApxResourceCore |
| DisplayRecord | Control.DisplayProof |
| EquipmentRecord | Place.SupplementalEquipment |
A.1.6.4 Associations of the "SiteConfiguration" package
Table A.18 -- Associations of the "SiteConfiguration" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| CameraDetail | recorder.equipment | Equipment | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | |
| CameraView | camera | Camera | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| CommsPoint | place | Place | The location it serves. | 1..1 | PkCommon.Reference | |
| lane | Lane | The VehicularAccess it serves, when it serves exactly one. | 0..1 | PkCommon.Reference | ||
| equipment | Equipment | The SupplementalEquipment it is, when it is inventoried hardware (role intercom, analogDialer, emergencyPhone). |
0..1 | PkCommon.Reference | ||
| serves | Serves | The barrier an agent opens for this comms point, a gate or an access door, when there is one. | 0..1 | PkCommon.Reference | ||
| coverage.period | Period | Defines a continuous time period or a set of discontinuous time periods defined by the intersection of a set of criteria all within an overall delimiting interval. | 0..1 | PkCommon.Period | ||
| DisplayRecord | display | Display | The sign, a SupplementalEquipment of §26.1 (role laneDisplay or countSign). |
1..1 | PkCommon.Reference | |
| place | Place | The place of the display; the server derives it from the device, and a body value that disagrees is 422 request-unprocessable. |
0..1 | PkCommon.Reference | ||
| observation | Observation | The read that triggered the message (className ObservationElement), when there was one. |
0..1 | PkCommon.Reference | ||
| session | Session | The stay the message was for (className Session), when there was one. |
0..1 | PkCommon.Reference | ||
| command | Command | The Part 6 displayMessage command that drove the sign, when one did; shownTime and contentHash then agree with its CommandResult.display. |
0..1 | PkCommon.Reference | ||
| EquipmentDetail | lane | Lane | The VehicularAccess the item serves. Absent for place-level equipment (an access door, a pay-on-foot station, a server). | 0..1 | PkCommon.Reference | |
| builtInto | Built into | The host equipment this item is part of (an intercom in a door's call box, a camera in a pay station). | 0..1 | PkCommon.Reference | ||
| controls | Controls | The barriers this device opens (an exit verifier that controls gate 2, a card reader that controls an access door). | 0..* | PkCommon.Reference | ||
| serviceProvider.organisation | Organisation | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| EquipmentRecord | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | |
| IdentifierResolution | target | Target | The place, lane, equipment or comms point found. | 1..1 | PkCommon.Reference | |
| place | Place | The place the target belongs to (the target itself when it is a place). | 0..1 | PkCommon.Reference | ||
| PlaceOperations | escalationContacts.hours | Hours | When this role is reachable. Absent means always. | 0..1 | PkCommon.Period |
A.1.6.5 Attributes of the "SiteConfiguration" package
Table A.19 -- Attributes of the "SiteConfiguration" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| CameraDetail | mounting | Mounting | When builtIn, EquipmentDetail builtInto names the host, for example a pay station's driver camera. |
0..1 | CameraDetail.mounting (enumeration) | |
| view | View | What the camera looks at; one camera may cover several. | 1..* | CameraDetail.view (enumeration) | ||
| faces | Faces | For lanes, plazas and ramps, relative to the facility (Part 13 §13.3a). | 0..1 | CameraDetail.faces (enumeration) | ||
| primary | Primary | Show this camera first for its lane or area. | 0..1 | Boolean | ||
| ptz | Ptz | Can pan, tilt and zoom. | 0..1 | Boolean | ||
| recorder | Recorder | The DVR or NVR that records it (an equipment item with role videoRecorder) and the channel. |
0..1 | Structure (members below) | ||
| recorder.channel | Channel | The channel on the recorder that keeps this camera. † | 0..1 | String | ||
| streams | Streams | What the camera can deliver, so a host knows what kind of view to ask for. | 0..* | Structure (members below) | ||
| streams.protocol | Protocol | The stream protocol the camera can deliver (Part 26 §26.3). † | 1..1 | CameraDetail.streams.protocol (enumeration) | ||
| streams.transport | Transport | The transport of the stream, such as tcp or udp for RTSP. † | 0..1 | String | ||
| streams.resolution | Resolution | The picture size of the stream, such as 1920x1080. † | 0..1 | String | ||
| retentionDays | Retention days | How long recordings are kept; stated per camera because driver and pedestrians views capture faces (Part 26 §26.3). |
0..1 | Integer | ||
| credentialRef | Credential ref | For a camera that cannot sit behind a gateway, the label of the credential the receiving system looks up in its own vault. NEVER the secret itself; the secret is exchanged once, outside APX, at onboarding (Part 9 §9.7). | 0..1 | String | ||
| CameraView | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | |
| kind | Kind | The kind of view the link delivers. † | 1..1 | CameraView.kind (enumeration) | ||
| url | Url | The single-use link, bound to the agent, that delivers the view until expiresAt (Part 26 §26.3). † | 1..1 | Url | ||
| protocol | Protocol | What the link serves (snapshot is an image). |
0..1 | CameraView.protocol (enumeration) | ||
| expiresAt | Expires at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| issuedTo | Issued to | The agent, echoed. | 0..1 | String | ||
| from | From | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| to | To | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| CameraViewRequest | kind | Kind | Whether a live view, a snapshot or a playback is asked for (Part 26 §26.3). † | 1..1 | CameraViewRequest.kind (enumeration) | |
| from | From | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| to | To | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| agent | Agent | The staff member the view is issued to; every view is logged against them. | 1..1 | String | ||
| agentType | Agent type | Whether a person or an AI agent will view the camera. † | 0..1 | CameraViewRequest.agentType (enumeration) | ||
| correlationId | Correlation id | The interaction the view belongs to; a view link MUST NOT be reused outside it. | 1..1 | Uuid | ||
| interactionId | Interaction id | The calling application's opaque interaction identifier (Part 17 §17.7). † | 0..1 | String | ||
| CommsPoint | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | read-only |
| version | Version | Server-managed; bodies carry it only for a versioned replace (Part 4 §4.2a). | 0..1 | Integer | read-only | |
| type | Type | definedValue from apx-comms-point-types. | 1..1 | String | ||
| phoneNumber | Phone number | E.164. The number that is called when help is requested, dialled by the parker for a posted number, or by the intercom or dialler when its button is pushed. | 0..1 | String | ||
| callerId | Caller id | E.164. The number the device calls out as. | 0..1 | String | ||
| commsDeviceId | Comms device id | The id the call platform uses for this comms point when it identifies it by neither caller id nor dialled number. | 0..1 | String | ||
| coverage | Coverage | When the comms point is answered and in which languages. The answering call centre itself is not named. | 0..* | Structure (members below) | ||
| coverage.languages | Languages | BCP 47 language tags. | 0..* | String | ||
| DisplayRecord | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 0..1 | Integer | read-only | |
| messageKind | Message kind | definedValue of apx-display-message-kinds, or an implementer code for a location's own messages. | 1..1 | String | ||
| EquipmentDetail | role | Role | definedValue from apx-equipment-roles (a fixed list; other is a code, not free text). |
1..1 | String | |
| manufacturer | Manufacturer | The maker of the item, as named on it (Part 26 §26.1). † | 0..1 | String | ||
| model | Model | Vehicle model. | 0..1 | String | ||
| firmwareVersion | Firmware version | The firmware release running on the item; recommended. † | 0..1 | String | ||
| softwareVersion | Software version | The application software on the device, when distinct from its firmware. | 0..1 | String | ||
| serialNumber | Serial number | The maker's serial number of the item. † | 0..1 | String | ||
| macAddresses | Mac addresses | One per network interface, lower-case hex without separators. | 0..* | String | ||
| installedAt | Installed at | The date the item went into service. † | 0..1 | Date | ||
| area | Area | Where on the site the item is, a definedValue from apx-area-types (Part 26 §26.2). | 0..1 | String | ||
| level | Level | The floor label as signed on site. | 0..1 | String | ||
| serviceProvider | Service provider | Who services the item. An organisation and a support reference, never a person. | 0..1 | Structure (members below) | ||
| serviceProvider.supportReference | Support reference | The provider's own reference for this unit or contract (an asset tag, a contract number). | 0..1 | String | ||
| ExternalIdentifiers | identifiers | Identifiers | The identifiers other systems use for this element, each with the system that issued it (Part 26 §26.6). † | 1..* | Structure (members below) | |
| identifiers.system | System | A URI owned by the system that issued the id. | 1..1 | Url | ||
| identifiers.id | Id | Unique identifier of the record (Part 4). | 1..1 | String | ||
| IdentifierResolution | className | Class name | The target's class, repeated for convenience. | 1..1 | String | |
| IdentifierResolveRequest | system | System | The URI of the system that issued the identifier, as it appears in the element's external identifiers. † | 1..1 | Url | |
| id | Id | Unique identifier of the record (Part 4). | 1..1 | String | ||
| PlaceOperations | commsAccountId | Comms account id | The id the call platform uses for the whole site (its account), the site-level pair of CommsPoint.commsDeviceId. |
0..1 | String | |
| escalationContacts | Escalation contacts | Who to escalate to, by role, in order. | 0..* | Structure (members below) | ||
| escalationContacts.role | Role | definedValue from apx-escalation-roles. | 1..1 | String | ||
| escalationContacts.order | Order | Calling order; 1 is tried first. | 1..1 | Integer |
A.1.7 "Alerts" package
A.1.7.1 Location of "Alerts" package. The location of the "Alerts" package is:
-- APX/Alerts (source: spec/openapi/domains/alerts/schemas.yaml; normative text: APX Part 7)
A.1.7.2 Classes of the "Alerts" package
Table A.20 -- Classes of the "Alerts" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| Alert | Alert | An operational condition requiring attention. Alert types are OPEN (UserDefinedCodeList apx-alert-types, seeded from APDS Use Case C.2.2 transaction exceptions and space statuses); severity is CLOSED. |
class | Proposed: Alert (Tier 2); Proposed: AlertSeverityEnum (Tier 2); Proposed: AlertStatusEnum (Tier 2) |
| AlertTransition | Alert transition | Optional body of POST /v1/alerts/{id}/acknowledge and /resolve (Part 7 §7.2). Annotates the statusHistory[] entry the transition appends. Sending no body is equivalent to sending {}. |
class | APX only |
A.1.7.3 Specializations of the "Alerts" package
There are no specializations in the "Alerts" package.
A.1.7.4 Associations of the "Alerts" package
Table A.21 -- Associations of the "Alerts" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| Alert | source.device | Device | Reference to a SupplementalEquipment. | 0..1 | PkCommon.Reference | |
| relatedEntity | Related entity | The APDS/APX entity this alert concerns (Session, AssignedRight, Command…). | 0..1 | PkCommon.Reference | ||
| supportInteraction | Support interaction | The Part 17 SupportInteraction the alert was raised from, when a call produced it (a receipt request, a refund request, a damage report; Part 7 §7.6). | 0..1 | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| AlertTransition | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.7.5 Attributes of the "Alerts" package
Table A.22 -- Attributes of the "Alerts" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| Alert | id | Id | Server-assigned when the raise carries none. A client MAY supply its own UUID on raise (Part 4 §4.1, Part 7 §7.1); an id that already exists is 409 id-collision. |
1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| alertType | Alert type | definedValue from apx-alert-types or an implementer code list. | 1..1 | String | ||
| severity | Severity | How serious the condition is, from info to critical (Part 7). † | 1..1 | Alert.severity (enumeration) | ||
| status | Status | Lifecycle: raised → acknowledged → resolved | expired. | 1..1 | Alert.status (enumeration) | read-only | |
| source | Source | Where the condition was detected. | 0..1 | Structure (members below) | ||
| source.place | Place | HierarchyElement UUID (subtree semantics for filtering). | 0..1 | Uuid | ||
| occurrenceTime | Occurrence time | When the condition actually occurred (may precede detection). | 0..1 | PkCommon.DateTime | ||
| detectionTime | Detection time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| expiryTime | Expiry time | The end of the alert's validity window (Part 7 §7.3). Settable on raise; when absent the server MAY default it by policy per alertType, and returns the value it applies. If the alert is still raised or acknowledged at this instant the server transitions it to expired and publishes apx.alert.status.v1. Absent means the alert never expires on its own. |
0..1 | PkCommon.DateTime | ||
| description | Description | Human-readable detail. | 0..1 | PkCommon.MultilingualString | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The alert status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | Client/agent principal that caused the transition. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| AlertTransition | detail | Detail | Copied verbatim into the appended history entry's detail. |
0..1 | String | |
| agent | Agent | The human or AI principal acting through the calling client (as Command.agent, Part 6 §6.1). When given it is recorded as the appended entry's actor; otherwise actor is the principal derived from the token. Attribution only: authorization is always the token's. |
0..1 | String |
A.1.8 "Accounts" package
A.1.8.1 Location of "Accounts" package. The location of the "Accounts" package is:
-- APX/Accounts (source: spec/openapi/domains/accounts/schemas.yaml; normative text: APX Part 13)
A.1.8.2 Classes of the "Accounts" package
Table A.23 -- Classes of the "Accounts" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| Account | Account | A billable parking account (monthly parker, fleet…), anchored on an APDS RightHolder. | class | Proposed: RightHolder (Tier 2); Proposed: AccountStatusEnum (Tier 2) |
| AccountSearch | Account search | Request body of POST /v1/accounts:search (Part 13 §13.1): the same keys as the GET lookup, carried in a body so personal data never enters a URL (Part 9 §9.6). |
class | APX only |
| PaymentDetail | Payment detail | The apds-ext:apx:payment-detail@1.0 decoration (Part 13 §13.6a) on a PaymentRecord or an APDS Payment: the rate sold and the lines that sum to the total, so revenue reports and the deck price check have the base amount, the fee, and the product without a bilateral code. On a PaymentRecord it carries rateSold and lines; on a native APDS Payment it carries rateSold only, because the Payment's own paymentLines are the itemization there. |
class | Proposed: RateSold (Tier 3); Proposed: RateProductEnum (Tier 3); Proposed: RateClassEnum (Tier 3) |
| PaymentLink | Payment link | A hosted payment link sent to a customer (Part 13 §13.1a) — the customer-service payment action of first resort. APX carries the link's lifecycle, never card data; the hosted page is the implementer's PCI scope. | class | APX only |
| PaymentLinkCancel | Payment link cancel | Request body cancelling a payment link before the customer pays (Part 13 §13.1a). The body is optional; reason is recorded on the link's audit trail. |
class | APX only |
| PaymentRecord | Payment record | A payment taken through APX (maps to the APDS Payment concept; card capture stays in the implementer's PCI scope). | class | Proposed: Payment (Tier 2); Proposed: PaymentStatusEnum (Tier 2); Proposed: CaptureStatusEnum (Tier 2) |
| PaymentSearch | Payment search | Request body of POST /v1/payments:search (Part 13 §13.2): the same keys and rules as the GET lookup, in a body (Part 9 §9.6). |
class | APX only |
| Posting | Posting | An accounting write-back of a payment to a monthly-parking/AR system. | class | APX only |
| PostingRequest | Posting request | Request body for the accounting write-back of a payment. | class | APX only |
| ReceiptDelivery | Receipt delivery | The outcome of a receipt request (Part 13 §13.1a). | class | APX only |
| ReceiptRequest | Receipt request | Asks the implementation to send the receipt for a settled payment again (Part 13 §13.1a). The destination travels in the body, never in a URL, and is not stored beyond the delivery. |
class | APX only |
A.1.8.3 Specializations of the "Accounts" package
There are no specializations in the "Accounts" package.
A.1.8.4 Associations of the "Accounts" package
Table A.24 -- Associations of the "Accounts" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| Account | holder | Holder | Reference to the APDS RightHolder. | 0..1 | PkCommon.Reference | |
| credentials | Credentials | The account's CredentialRecords (Part 21), when the server claims apx-credentials — additive; cardNumber and plates remain the APDS-only summary. |
0..* | PkCommon.Reference | ||
| balance | Balance | Current balance due. | 0..1 | Rates.AmountInCurrency | ||
| places | Places | HierarchyElement subtree roots this account is valid at. On aggregating implementations (one endpoint fronting many locations) this is how consumers attribute the account to its site(s); results of place-less account lookups MUST stay within the caller's apx_places grant (Part 13 §13.5). |
0..* | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| PaymentDetail | rateSold.rateTable | Rate table | The APDS RateTable at the version applied, when known. | 0..1 | PkCommon.VersionedReference | |
| lines | Lines | The itemization, as APDS PaymentLines (by $ref, never re-shaped). Each line's code is its idCode: a definedValue of apx-payment-line-codes (Part 11) or an implementer code. A line coded validation has paymentType: validation and its value is the value the validation offset (not money collected); every other line has paymentType: payment, and a reduction (discount) is a negative value. The currencyValues of the paymentType: payment lines MUST sum to the record's amount, in its currencyType; otherwise 422 request-unprocessable and nothing is charged. Only on a PaymentRecord: on a native APDS Payment the itemization is that Payment's own paymentLines and this member is absent (one store, Part 13 §13.6a). |
0..* | Rates.PaymentLine | ||
| PaymentLink | place | Place | Site binding (Part 13 §13.5). | 1..1 | PkCommon.Reference | |
| account | Account | The account the payment settles (or omit and use ticketNumber). | 0..1 | PkCommon.Reference | ||
| session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| amount | Amount | Requested amount; omit to charge the current amount due. | 0..1 | Rates.AmountInCurrency | ||
| payment | Payment | The resulting PaymentRecord once paid. | 0..1 | PkCommon.Reference | ||
| resolutionContext | Resolution context | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| approval | Approval | Approval evidence, when the context's AllowedAction for the link said requiresApproval (Part 17 §17.3). | 0..1 | Control.Approval | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| PaymentRecord | place | Place | The HierarchyElement (site) this payment is bound to. REQUIRED so every payment — in API responses and in apx.accounts.payment.recorded.v1 events — is attributable to its location on implementations fronting many places (Part 13 §13.5). |
1..1 | PkCommon.Reference | |
| amount | Amount | A class supporting the definition of a unit of currency in a defined currency. | 1..1 | Rates.AmountInCurrency | ||
| refundedAmount | Refunded amount | Cumulative amount refunded so far (Part 13 §13.1a). Absent or zero = nothing refunded. When it reaches amount the record is reversed; a partial refund leaves it approved with this member showing what was given back. |
0..1 | Rates.AmountInCurrency | read-only | |
| account | Account | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| postings | Postings | Accounting write-backs (PARIS-style) applied for this payment. | 0..* | Accounts.Posting | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| Posting | newBalance | New balance | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | |
| PostingRequest | account | Account | Account to post against when the payment isn't already account-bound. | 0..1 | PkCommon.Reference | |
| ReceiptDelivery | payment | Payment | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference |
A.1.8.5 Attributes of the "Accounts" package
Table A.25 -- Attributes of the "Accounts" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| Account | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | ||
| name | Name | Name in natural language. | 0..1 | String | ||
| phone | Phone | The contact phone number on file, personal data returned only under apx.accounts:read (Part 9 §9.6). † |
0..1 | String | ||
Contact e-mail on file. Personal data under the same Part 9 §9.6 minimization rule as phone: returned only under apx.accounts:read (Part 13 §13.1). |
0..1 | String | ||||
| cardNumber | Card number | Access credential number (NOT a payment card PAN). | 0..1 | String | ||
| plates | Plates | The licence plates registered to the account. † | 0..* | String | ||
| accountStatus | Account status | Whether the account is enabled for use. † | 1..1 | Account.accountStatus (enumeration) | ||
| AccountSearch | name | Name | Name in natural language. | 0..1 | String | |
| phone | Phone | A phone number to look accounts up by. † | 0..1 | String | ||
| An e-mail address to look accounts up by. † | 0..1 | String | ||||
| card | Card | Truncated card digits only (two to four); more is 422 personal-data-not-permitted. |
0..1 | String | ||
| plate | Plate | Vehicle license plate text as read or entered. | 0..1 | String | ||
| place | Place | HierarchyElements that narrow the lookup to accounts valid at them. † | 0..* | Uuid | ||
| page | Page | Pagination information for this page of results. | 0..1 | Integer | ||
| PaymentDetail | rateSold | Rate sold | The rate the vendor sold, as the vendor names it. | 0..1 | Structure (members below) | |
| rateSold.id | Id | The vendor's rate id, or the APDS RateTable id when the deck is the source. | 0..1 | String | ||
| rateSold.name | Name | Name in natural language. | 0..1 | String | ||
| rateSold.product | Product | The kind of product the rate sold. † | 0..1 | PaymentDetail.rateSold.product (enumeration) | ||
| rateSold.class | Class | How the price of the rate sold was arrived at. † | 0..1 | PaymentDetail.rateSold.class (enumeration) | ||
| PaymentLink | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| channel | Channel | Delivery channel (sms | email | other implementer code list). | 1..1 | String | ||
| sentTo | Sent to | Masked destination (e.g. "+1•••••••4567"). PII-minimized. | 0..1 | String | ||
| status | Status | The link's lifecycle state (Part 13 §13.1a). † | 1..1 | PaymentLink.status (enumeration) | read-only | |
| expiresAt | Expires at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| correlationId | Correlation id | Identifier that links related requests and records. | 0..1 | Uuid | ||
| resolutionContextVersion | Resolution context version | The version of the ResolutionContext whose allowed actions this write was checked against, recorded by the server so the decision stays reconstructible after the context is recomputed or expires (Part 17 §17.2). |
0..1 | Integer | read-only | |
| PaymentLinkCancel | reason | Reason | Why the link was cancelled (implementer code list, e.g. wrongRecipient, paidOtherwise). | 0..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| PaymentRecord | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| transactionID | Transaction ID | The transaction identifier of the payment, returned when it is taken (Part 13 §13.1). † | 1..1 | String | read-only | |
| dateCollected | Date collected | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | read-only | |
| meansOfPayment | Means of payment | How the customer paid, in APDS's own vocabulary (MeansOfPaymentEnum, which APDS uses for the means a place accepts). A card whose credit or debit type the payment layer does not report is unknown. |
0..1 | Rates.MeansOfPaymentEnum | ||
| channel | Channel | Where the payment was captured. lane = a lane device; payStation = a pay-on-foot or pay station; agent = a person on the implementer's own PCI-scoped terminal; autoAttendant = a PCI-compliant IVR that captures the card out of band; online = web or mobile app. APX never carries PANs, whichever channel is used. |
0..1 | PaymentRecord.channel (enumeration) | ||
| paymentStatus | Payment status | The payment layer's answer. approved = approved (for a hold, see captureStatus); declined = refused by the payment layer; reversed = a hold voided, or a payment refunded in full. Transitions per Part 13 §13.1a. |
1..1 | PaymentRecord.paymentStatus (enumeration) | read-only | |
| captureStatus | Capture status | Whether an approved payment's funds have been collected (Part 13 §13.1a). authorized = a hold: the payment layer approved an authorization-only request (captureLater: true), funds are held, nothing is collected yet; settled by POST /v1/payments/{id}/capture or released by …/void. captured = collected. Absent = captured (a sale). A hold is returned to the caller that created it, but is not listed by GET /v1/payments unless asked for, is not published on apx.accounts.payment.recorded.v1, and is not materialized as an APDS Payment until captured. |
0..1 | PaymentRecord.captureStatus (enumeration) | read-only | |
| captureLater | Capture later | Create-time intent: true asks for authorization only (the record is created paymentStatus: approved, captureStatus: authorized and is settled later by POST /v1/payments/{id}/capture or released by …/void). Absent or false = sale (authorize and capture at once). A server that does not model an authorization lifecycle refuses true with 422 request-unprocessable (Part 13 §13.1a). |
0..1 | Boolean | ||
| ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| cardLast4 | Card last4 | Truncated payment-card digits (PCI-permitted). For transient parkers with no LPR and no readable ticket, this is often the ONLY key a caller can provide — the lookup of last resort. | 0..1 | String | ||
| PaymentSearch | ticketLast4 | Ticket last4 | The last four digits of the ticket number, a truncated key limited to the last 8 hours without a date (Part 13 §13.2). † | 0..1 | String | |
| cardLast4 | Card last4 | The last four digits of the payment card, a truncated key limited to the last 8 hours without a date (Part 13 §13.2). † | 0..1 | String | ||
| ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| account | Account | The identifier of an account whose payments are sought (Part 13 §13.2). † | 0..1 | Uuid | ||
| date | Date | The date the payments were made, narrowing a keyed query. † | 0..1 | Date | ||
| place | Place | HierarchyElements that narrow a keyed query to payments bound to them. † | 0..* | Uuid | ||
| captureStatus | Capture status | Whether to return only holds or only collected payments; holds are excluded unless asked for (Part 13 §13.2). † | 0..1 | PaymentSearch.captureStatus (enumeration) | ||
| page | Page | Pagination information for this page of results. | 0..1 | Integer | ||
| Posting | confirmationNumber | Confirmation number | The confirmation number the accounting system returned for the posting. † | 1..1 | String | |
| accountUpdated | Account updated | Whether the accounting system updated the account. † | 1..1 | Boolean | ||
| postedTo | Posted to | Target accounting system identifier (e.g. "paris"). | 0..1 | String | ||
| time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| PostingRequest | postedTo | Posted to | Target accounting system identifier; server default applies when omitted. | 0..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ReceiptDelivery | channel | Channel | The channel the receipt was sent by. † | 1..1 | ReceiptDelivery.channel (enumeration) | |
| status | Status | Whether the receipt is queued, sent or failed. † | 1..1 | ReceiptDelivery.status (enumeration) | ||
| link | Link | For channel = link, the receipt's short-lived URL. |
0..1 | Url | ||
| requestedAt | Requested at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| ReceiptRequest | channel | Channel | print re-prints at the device the payment was taken on; link returns a short-lived URL for the agent to read out or forward. |
1..1 | ReceiptRequest.channel (enumeration) | |
| destination | Destination | The e-mail address or E.164 number for email and sms; ignored for print and link. |
0..1 | String | ||
| agent | Agent | The agent who asked for the receipt to be re-sent, for the audit record. † | 0..1 | String | ||
| correlationId | Correlation id | Identifier that links related requests and records. | 0..1 | Uuid |
A.1.9 "Lpr" package
A.1.9.1 Location of "Lpr" package. The location of the "Lpr" package is:
-- APX/Lpr (source: spec/openapi/domains/lpr/schemas.yaml; normative text: APX Part 13)
A.1.9.2 Classes of the "Lpr" package
Table A.26 -- Classes of the "Lpr" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| AttributeRead | Attribute read | One recognized attribute with its own confidence (0–1, APDS Confidence scale). | class | Proposed: AttributeRead (Tier 1) |
| LaneCameras | Lane cameras | The LPR cameras on a lane and which way each one faces (Part 13 §13.3a(5)). Carried on an APDS VehicularAccess as the Level B decoration apds-ext:apx:lane-cameras@1.0 in its extensions container (Part 4 §4.3). Facing is relative to the facility, not to the lane's mode, so it holds on reversible lanes. Describes the setup only; APX derives nothing from it. |
class | Proposed: VehicularAccess (Tier 2); Proposed: LaneCamera (Tier 2); Proposed: CameraFacingEnum (Tier 2) |
| LprRead | Lpr read | One plate read joined with its ticket/session context. | class | Proposed: ImageTypeEnum (Tier 2) |
| LprReadDetail | Lpr read detail | What a modern LPR camera knows beyond the plate string and one overall score (Part 13 §13.3a). Carried on the ingested APDS Observation as the Level B decoration apds-ext:apx:lpr-read@1.0 in its extensions container (Part 4 §4.3 — plain APDS consumers ignore it), and projected on LprRead.detail and PlateCandidate.detail. Every field optional; each recognized attribute carries its own confidence. APDS's vehicleAncillaryIdentification (country, stateProvince, make, model, color) remains the APDS-visible copy of the winning values; this block adds the per-attribute confidence, the candidates that lost, and the passage geometry APDS has no fields for. |
class | Proposed: ObservationElement (Tier 1); Proposed: AlternateRead (Tier 1); Proposed: ReadReview (Tier 2); Proposed: Image (Tier 2); Proposed: ImageRegion (Tier 2); Proposed: ReadAttributeEnum (Tier 1); Proposed: VehicleMovementEnum (Tier 1); Proposed: PlateFaceEnum (Tier 2); Proposed: ReadReviewStateEnum (Tier 2) |
| LprReadSearch | Lpr read search | Request body of POST /v1/lpr/reads:search (Part 13 §13.3): the same keys as the GET lookup, carried in a body so a plate never enters a URL that proxies and access logs keep (Part 9 §9.6). At least one of plate, ticket, observation, or session is REQUIRED. |
class | APX only |
| PlateCorrection | Plate correction | Request body of PUT /v1/lpr/reads/{observation}/plate (Part 13 §13.3a(4a)): a reviewer's decision on one read. confirmed keeps the engine's values; corrected replaces them with the ones given; rejected marks the read unusable for pairing and enforcement. plate, country, and stateProvince belong to corrected only: sent with another decision they are 422 request-unprocessable. |
class | APX only |
A.1.9.3 Specializations of the "Lpr" package
There are no specializations in the "Lpr" package.
A.1.9.4 Associations of the "Lpr" package
Table A.27 -- Associations of the "Lpr" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| LprRead | place | Place | The HierarchyElement (site) where the read occurred. REQUIRED so cross-lookups and apx.data.observation.created.v1 consumers can always attribute the read to its location (Part 13 §13.5). |
1..1 | PkCommon.Reference | |
| detail | Detail | Further detail, in free text. | 0..1 | Lpr.LprReadDetail | ||
| observation | Observation | The underlying APDS Observation. | 0..1 | PkCommon.Reference | ||
| session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| lane | Lane | The VehicularAccess (lane) the read was taken at, when the Observation's elementIds reference one. Whether the read was an entry or an exit is detail.accessEvent (Part 13 §13.3a(4)); the lane used does not decide it. |
0..1 | PkCommon.Reference | ||
| recentReservations | Recent reservations | The same customer's last 10 reservations (newest first) — customer resolved from the plate via the account registry or the reservation's own vehicle credentials. | 0..10 | Reservations.ReservationSummary | ||
| extensions | Extensions | The underlying Observation's extensions, projected minus the apds-ext:apx:lpr-read@1.0 block (which is detail), so vendor keys preserved on ingest are visible here (Part 13 §13.3a, Part 4 §4.3). |
0..1 | Common.Extensions | ||
| LprReadDetail | plate | Plate | Vehicle license plate text as read or entered. | 0..1 | Lpr.AttributeRead | |
| country | Country | Plate issuing country (APDS VehicleAncillaryIdentification.country vocabulary). | 0..1 | Lpr.AttributeRead | ||
| stateProvince | State province | Plate issuing state/province (APDS VehicleAncillaryIdentification.stateProvince vocabulary). | 0..1 | Lpr.AttributeRead | ||
| plateCategory | Plate category | The plate's category where the issuing country uses one (e.g. the prefix on some Gulf-state plates). Absent where the country has none. | 0..1 | Lpr.AttributeRead | ||
| make | Make | Vehicle make. | 0..1 | Lpr.AttributeRead | ||
| model | Model | Vehicle model. | 0..1 | Lpr.AttributeRead | ||
| color | Color | One recognized attribute with its own confidence (0–1, APDS Confidence scale). | 0..1 | Lpr.AttributeRead | ||
| bodyType | Body type | The engine's own vehicle class label (SUV, sedan, pickup, bus, truck…), carried as the engine reports it and not mapped to a standard list. | 0..1 | Lpr.AttributeRead | ||
| review.original.plate | Plate | Vehicle license plate text as read or entered. | 0..1 | Lpr.AttributeRead | ||
| review.original.country | Country | One recognized attribute with its own confidence (0–1, APDS Confidence scale). | 0..1 | Lpr.AttributeRead | ||
| review.original.stateProvince | State province | State or province that issued the plate. | 0..1 | Lpr.AttributeRead | ||
| PlateCorrection | extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.9.5 Attributes of the "Lpr" package
Table A.28 -- Attributes of the "Lpr" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| AttributeRead | value | Value | The recognised value; for plate, country, state, make, model and colour it equals the value carried in the observed credential or vehicle ancillary identification. † | 1..1 | String | |
| confidence | Confidence | Confidence in the value, from 0 to 1. | 0..1 | Decimal | ||
| LaneCameras | cameras | Cameras | The LPR cameras on the lane, each with its identifier and the way it faces. † | 1..* | Structure (members below) | |
| cameras.cameraId | Camera id | The camera, as Image.cameraID names it on its reads. MUST be unique within the Place. |
1..1 | String | ||
| cameras.faces | Faces | inward — looking into the facility, the way entering traffic travels (reads the rear plates of entering vehicles); outward — looking out of it, the way exiting traffic travels (reads the rear plates of exiting vehicles). |
1..1 | LaneCameras.cameras.faces (enumeration) | ||
| LprRead | plate | Plate | Vehicle license plate text as read or entered. | 1..1 | String | |
| confidence | Confidence | Overall read accuracy (APDS 4.1 Confidence.overallConfidence). Per-attribute confidences are in detail. |
0..1 | Decimal | ||
| laneTravel | Lane travel | DEPRECATED since 0.12.0, removed at 1.0. APX no longer derives direction; use detail.accessEvent (entry | exit), which the LPR system reports (Part 13 §13.3a(4)). Servers SHOULD return unknown. |
0..1 | LprRead.laneTravel (enumeration) | read-only, deprecated | |
| observationDateTime | Observation date time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| imageLink | Image link | Screenshot/still of the read (APDS Image). Absent when no image was taken or the imagery has been purged (see purgedImagery). The preferred still; every unpurged image is in images[]. |
0..1 | PkCommon.Url | ||
| images | Images | Every unpurged image of the read (Part 13 §13.3c), by kind: the APDS ImageTypeEnum values plus plateExtended (a wider crop around the plate) and context (the scene around the vehicle, wider than the overview), carried as imageType strings until APDS adds them. Same access and purge rules as imageLink. |
0..* | Structure (members below) | ||
| images.id | Id | The APDS Image id. | 1..1 | String | ||
| images.imageType | Image type | overview, plate (APDS ImageTypeEnum), plateExtended, context, or an implementer kind. |
0..1 | String | ||
| images.imageLink | Image link | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| images.cameraId | Camera id | The camera that captured the image, as Image.cameraID names it (Part 13 §13.3a(5)). † |
0..1 | String | ||
| cameraId | Camera id | The capturing camera (APDS Image.cameraID), opaque. | 0..1 | String | ||
| purgedImagery | Purged imagery | True when imagery for this read existed and was purged under the published retention schedule (Part 13 §13.3b), so a consumer can tell "picture purged" from "no picture taken". Absent or false otherwise. | 0..1 | Boolean | read-only | |
| LprReadDetail | alternateReads | Alternate reads | The other candidate plate strings the engine considered for this capture, best first — kept so a correction (Part 17 §17.5) can pick a loser. | 0..* | Structure (members below) | |
| alternateReads.plate | Plate | Vehicle license plate text as read or entered. | 1..1 | String | ||
| alternateReads.stateProvince | State province | State or province that issued the plate. | 0..1 | String | ||
| alternateReads.confidence | Confidence | Confidence in the value, from 0 to 1. | 0..1 | Decimal | ||
| frameReads | Frame reads | How many frames read this plate as the vehicle passed. Engines need at least two to call movement, so a camera that sees only one of the vehicle's plates still reports it (Part 13 §13.3a(3)). |
0..1 | Integer | ||
| platesRead | Plates read | How many distinct plates of the vehicle were read in the passage (1 = one plate; 2 = front and rear). | 0..1 | Integer | ||
| plateFace | Plate face | Which plate of the vehicle was read, for engines that can tell. | 0..1 | LprReadDetail.plateFace (enumeration) | ||
| plateBox | Plate box | The plate's position in the camera frame, as fractions 0–1 of the frame's height (top, bottom) and width (left, right), so it survives image resizing. |
0..1 | Structure (members below) | ||
| plateBox.top | Top | The top edge of the plate, as a fraction 0–1 of the frame's height. † | 1..1 | Decimal | ||
| plateBox.left | Left | The left edge of the plate, as a fraction 0–1 of the frame's width. † | 1..1 | Decimal | ||
| plateBox.bottom | Bottom | The bottom edge of the plate, as a fraction 0–1 of the frame's height. † | 1..1 | Decimal | ||
| plateBox.right | Right | The right edge of the plate, as a fraction 0–1 of the frame's width. † | 1..1 | Decimal | ||
| movement | Movement | The vehicle's motion relative to the camera: toward it, away from it, or stopped. A camera fact, not a statement about the facility. approaching and receding are deprecated synonyms of toward and away — accepted until 1.0; writers SHOULD send the new values (Part 13 §13.3a(3)). |
0..1 | LprReadDetail.movement (enumeration) | ||
| speed | Speed | Vehicle speed in km/h when the engine measures it; absent otherwise, never a sentinel such as -1. | 0..1 | Decimal | ||
| accessEvent | Access event | Whether this read was a vehicle entering or leaving the facility, as reported by the LPR system — not the lane's configured purpose (the lane's APDS accessType), and never inferred by the APX server. Absent means unknown. The LPR system MAY revise it through PUT /v1/lpr/reads/{observation}/access-event (Part 13 §13.3a(4)). |
0..1 | LprReadDetail.accessEvent (enumeration) | ||
| captureGroup | Capture group | Opaque id linking the reads of one vehicle's passage — several frames, and one camera or several (e.g. front plate and rear plate) — so consumers can treat them as one event. Reads of one group SHOULD carry the same accessEvent (Part 13 §13.3a(6)). |
0..1 | String | ||
| engine | Engine | Recognition engine/vendor identifier, opaque (for confidence calibration downstream). | 0..1 | String | ||
| review | Review | The human-review state of the read (Part 13 §13.3a(4a)): a low-confidence read, or any read in a jurisdiction that requires review, is pending until a reviewer confirms, corrects, or rejects it through PUT /v1/lpr/reads/{observation}/plate. notRequired is a read no rule sent to review. Absent means the implementation does not review reads. |
0..1 | Structure (members below) | ||
| review.state | State | Where the read is in human review (Part 13 §13.3a(4a)). † | 0..1 | LprReadDetail.review.state (enumeration) | ||
| review.reasons | Reasons | Why the read was sent to review — definedValues from apx-read-review-reasons (Part 11) or implementer values. |
0..* | String (code list apx-read-review-reasons) | ||
| review.decidedTime | Decided time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| review.decidedBy | Decided by | Opaque reviewer principal. | 0..1 | String | ||
| review.original | Original | The engine's values before the first correction, with their confidences, kept so the correction is auditable. Set by the server on the first corrected decision and never changed afterwards (Part 13 §13.3a(4a)). |
0..1 | Structure (members below) | ||
| LprReadSearch | plate | Plate | Vehicle license plate text as read or entered. | 0..1 | String | |
| ticket | Ticket | A ticket number whose reads are sought. † | 0..1 | String | ||
| observation | Observation | The identifier of an Observation whose read is sought. † | 0..1 | Uuid | ||
| session | Session | The identifier of a Session whose reads are sought. † | 0..1 | Uuid | ||
| place | Place | Narrow results below the grant to one HierarchyElement and its subtree. | 0..1 | Uuid | ||
| page | Page | Pagination information for this page of results. | 0..1 | Integer | ||
| PlateCorrection | decision | Decision | The reviewer's decision on the read. † | 1..1 | PlateCorrection.decision (enumeration) | |
| plate | Plate | The corrected plate. Required when decision is corrected; not allowed otherwise. |
0..1 | String | ||
| country | Country | APDS VehicleAncillaryIdentification.country vocabulary. Only with corrected. |
0..1 | String | ||
| stateProvince | State province | APDS VehicleAncillaryIdentification.stateProvince vocabulary. Only with corrected. |
0..1 | String | ||
| reason | Reason | Why the action was taken. | 0..1 | String | ||
| reviewer | Reviewer | Opaque reviewer principal (recorded as review.decidedBy). |
0..1 | String |
A.1.10 "Reservations" package
A.1.10.1 Location of "Reservations" package. The location of the "Reservations" package is:
-- APX/Reservations (source: spec/openapi/domains/reservations/schemas.yaml; normative text: APX Part 14)
A.1.10.2 Classes of the "Reservations" package
Table A.29 -- Classes of the "Reservations" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| PermitExtension | Permit extension | The apds-ext:apx:permit@1.1 extension object (Part 14 §14.2; @1.0 remains valid and carries the first two members only): links a renewal permit to the one it renews, so a portal can follow the chain, and caps how many of a multi-vehicle permit's vehicles may be parked at once (§14.2d). |
class | Proposed: OverageBilling (Tier 2); Proposed: OverageBillingModeEnum (Tier 2) |
| PermitIssueRequest | Permit issue request | Issue a permit from a pooled RightSpecification — creates a native AssignedRight with (possibly multiple) vehicle credentials, per the APDS annual-permit use case (one right, multiple vehicles). | class | APX only |
| PoolAvailability | Pool availability | Availability of one RightPool of a pooled RightSpecification (APDS RightPool profile, Part 14 §14.2). issued = RightPool.distributedAssignedRights, available = RightPool.availableAssignedRights, capacity = their sum. |
class | APX only |
| ReservationExtension | Reservation extension | The apds-ext:apx:reservation@1.0 extension object attached to a native AssignedRight. Presence of this extension marks the AssignedRight as a reservation; state transitions follow Part 14 §14.1 (transition table). plannedStart/plannedEnd MUST mirror the AssignedRight's plannedUses[0].startTime/endTime, which is authoritative. |
class | Proposed: AssignedRight (Tier 2); Proposed: ReservationStateEnum (Tier 2) |
| ReservationSummary | Reservation summary | Compact view of one past/current reservation, for customer-history lookups. Also the data of apx.reservation.noshow.v1 (Part 14 §14.1 step 6). |
class | APX only |
A.1.10.3 Specializations of the "Reservations" package
There are no specializations in the "Reservations" package.
A.1.10.4 Associations of the "Reservations" package
Table A.30 -- Associations of the "Reservations" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| PermitExtension | renews | Renews | The AssignedRight this permit renews. | 0..1 | PkCommon.Reference | |
| renewedBy | Renewed by | Set by the server on the renewed permit when a renewal is issued. | 0..1 | PkCommon.Reference | read-only | |
| overageBilling.dayRate | Day rate | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| PermitIssueRequest | rightSpecification | Right specification | Represents a reference to an identifiable object where the combination of the identifier and version is unique. It is composed of an unique identifier, a version and potentially a string identifying the class of the referenced object. | 1..1 | PkCommon.VersionedReference | |
| holder | Holder | The RightHolder the permit is issued to; materialized as a CustomerCredential on the AssignedRight (Part 14 §14.2). |
1..1 | PkCommon.Reference | ||
| extensions | Extensions | Extension container (Part 4 §4.3). apds-ext:apx:permit@1.0 links a renewal to the permit it renews (Part 14 §14.2). |
0..1 | Common.Extensions | ||
| extensions.apds-ext:apx:permit@1.0 | 0 | The apds-ext:apx:permit@1.1 extension object (Part 14 §14.2; @1.0 remains valid and carries the first two members only): links a renewal permit to the one it renews, so a portal can follow the chain, and caps how many of a multi-vehicle permit's vehicles may be parked at once (§14.2d). |
0..1 | Reservations.PermitExtension | ||
| PoolAvailability | rightSpecification | Right specification | Represents a reference to an identifiable object where the combination of the identifier and version is unique. It is composed of an unique identifier, a version and potentially a string identifying the class of the referenced object. | 1..1 | PkCommon.VersionedReference | |
| pool | Pool | The RightPool these counts are for (selected per Part 14 §14.2). | 0..1 | PkCommon.VersionedReference | ||
| validity | Validity | The selected pool's validity window (APDS RightPool.validity), when it has one. |
0..1 | PkCommon.Validity | ||
| ReservationExtension | checkInSession | Check in session | Set when a Session referencing this AssignedRight is created. | 0..1 | PkCommon.Reference | |
| ReservationSummary | reservation | Reservation | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| amountPaid | Amount paid | What the customer prepaid, so an agent at the lane sees it without a payment lookup. | 0..1 | Rates.AmountInCurrency |
A.1.10.5 Attributes of the "Reservations" package
Table A.31 -- Attributes of the "Reservations" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| PermitExtension | maxConcurrentVehicles | Max concurrent vehicles | How many of the permit's registered vehicles may be parked at the place at once (Part 14 §14.2d). Absent means every registered vehicle may. A vehicle beyond the limit is an overage. | 0..1 | Integer | |
| overageBilling | Overage billing | What an overage costs (Part 14 §14.2d). | 0..1 | Structure (members below) | ||
| overageBilling.mode | Mode | rack — the place's transient rate deck; dayRate — the flat dayRate; none — recorded, not billed. |
1..1 | PermitExtension.overageBilling.mode (enumeration) | ||
| PermitIssueRequest | credentials | Credentials | Vehicle credentials (e.g. plates) usable under this one permit; each is materialized as a VehicleCredential (Part 14 §14.2). |
0..* | Structure (members below) | |
| credentials.credentialType | Credential type | An APDS CredentialTypeEnum value, which MUST also be in the RightSpecification's credentials allow-list (Part 14 §14.2). |
0..1 | String | ||
| credentials.credentialIdentification | Credential identification | What the lane reads — the plate string, tag id, or card number. | 0..1 | String | ||
| validity | Validity | The permit's validity window; materialized as one PlannedUse (startTime/endTime) and expiry = end (Part 14 §14.2). |
0..1 | Structure (members below) | ||
| validity.start | Start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| validity.end | End | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| PoolAvailability | capacity | Capacity | Permits the pool can issue in total (issued + available); may exceed spaces when the operator oversells. |
1..1 | Integer | |
| issued | Issued | The number of permits the pool has issued (APDS RightPool.distributedAssignedRights). † | 1..1 | Integer | ||
| available | Available | The number of permits the pool can still issue (APDS RightPool.availableAssignedRights). † | 1..1 | Integer | ||
| spaces | Spaces | Physical spaces behind the pool, when the operator sells above that count. Informative. | 0..1 | Integer | ||
| ReservationExtension | reservationState | Reservation state | The current state of the reservation (Part 14 §14.1). † | 1..1 | ReservationExtension.reservationState (enumeration) | |
| plannedStart | Planned start | Mirror of plannedUses[0].startTime (Part 14 §14.1). |
0..1 | PkCommon.DateTime | ||
| plannedEnd | Planned end | Mirror of plannedUses[0].endTime (Part 14 §14.1). |
0..1 | PkCommon.DateTime | ||
| noShowAfter | No show after | SERVER-SET: the instant after which a reservation still without a check-in transitions to noShow (plannedStart plus the operator's grace period, Part 14 §14.1 step 6), so a platform can tell a customer when the booking lapses. Clients do not send it. |
0..1 | PkCommon.DateTime | read-only | |
| ReservationSummary | reservationState | Reservation state | The current state of the reservation (Part 14 §14.1). † | 0..1 | ReservationSummary.reservationState (enumeration) | |
| plannedStart | Planned start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| plannedEnd | Planned end | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| noShowAfter | No show after | When a reservation not yet checked in lapses to noShow (see ReservationExtension.noShowAfter). |
0..1 | PkCommon.DateTime | ||
| issuer | Issuer | Who sold the reservation, so a code that several sellers could have issued is read against the right one (Part 14 §14.1, Part 17 §17.2). An operator code or the seller's domain. | 0..1 | String |
A.1.11 "Tolling" package
A.1.11.1 Location of "Tolling" package. The location of the "Tolling" package is:
-- APX/Tolling (source: spec/openapi/domains/tolling/schemas.yaml; normative text: APX Part 15)
A.1.11.2 Classes of the "Tolling" package
Table A.32 -- Classes of the "Tolling" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| TollDisputeOpen | Toll dispute open | Request body opening a dispute on a toll transaction. | class | APX only |
| TollDisputeResolution | Toll dispute resolution | Request body resolving an open dispute. | class | APX only |
| TollPaymentAttachment | Toll payment attachment | Request body attaching the settling Payment to a toll transaction. | class | APX only |
| TollPricing | Toll pricing | Request body pricing a created toll transaction (Part 15 §15.1), for operators whose pricing engine runs outside the APX server. |
class | APX only |
| TollTransaction | Toll transaction | A toll charge assembled from plate/transponder reads: Observation refs → pricing → Payment ref, with a dispute lifecycle. | class | Proposed: TollTransaction (Tier 2); Proposed: TollDispute (Tier 2); Proposed: TollTransactionStatusEnum (Tier 2) |
| TollVoid | Toll void | Request body voiding a toll transaction that should never have been charged (Part 15 §15.1). | class | APX only |
A.1.11.3 Specializations of the "Tolling" package
There are no specializations in the "Tolling" package.
A.1.11.4 Associations of the "Tolling" package
Table A.33 -- Associations of the "Tolling" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| TollDisputeOpen | disputedBy | Disputed by | The party on whose behalf the operator raises the dispute (RightHolder, Organisation, or Contact). MAY be absent for an operator-initiated dispute (Part 15 §15.1). | 0..1 | PkCommon.Reference | |
| TollDisputeResolution | adjustedPricing | Adjusted pricing | The new amount owed. REQUIRED when resolution is adjusted (otherwise 400 invalid-request) and ignored for any other value; the server moves the old pricing to dispute.originalPricing (Part 15 §15.1). |
0..1 | Rates.AmountInCurrency | |
| TollPaymentAttachment | payment | Payment | Reference to the settling APDS Payment (or APX PaymentRecord). | 1..1 | PkCommon.Reference | |
| TollPricing | pricing | Pricing | A class supporting the definition of a unit of currency in a defined currency. | 1..1 | Rates.AmountInCurrency | |
| TollTransaction | tollPoint | Toll point | Reference to the toll point (SupplementalEquipment). | 1..1 | PkCommon.Reference | |
| observations | Observations | The underlying APDS Observations (plate/transponder reads). | 0..* | PkCommon.Reference | ||
| pricing | Pricing | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| payment | Payment | Reference to the settling PaymentRecord/APDS Payment. | 0..1 | PkCommon.Reference | ||
| dispute.disputedBy | Disputed by | The party on whose behalf the dispute was raised (RightHolder, Organisation, or Contact); absent for an operator-initiated dispute (Part 15 §15.1). | 0..1 | PkCommon.Reference | read-only | |
| dispute.originalPricing | Original pricing | Set by the server when an adjusted resolution rewrites pricing: the amount before the adjustment (Part 15 §15.1). |
0..1 | Rates.AmountInCurrency | read-only | |
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.11.5 Attributes of the "Tolling" package
Table A.34 -- Attributes of the "Tolling" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| TollDisputeOpen | reason | Reason | Dispute reason — definedValue from apx-toll-dispute-reasons (wrongVehicle | duplicateCharge | wrongClass | notLiable | other, Part 15 §15.1) or an implementer code list (Part 11). |
1..1 | String (code list apx-toll-dispute-reasons) | |
| detail | Detail | Further detail, in free text. | 0..1 | String | ||
| TollDisputeResolution | resolution | Resolution | Resolution — definedValue from apx-toll-dispute-resolutions (upheld | refunded | adjusted | withdrawn, Part 15 §15.1) or an implementer code list (Part 11). |
1..1 | String (code list apx-toll-dispute-resolutions) | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| TollPaymentAttachment | note | Note | Free-text note from the actor. | 0..1 | String | |
| TollPricing | detail | Detail | Pricing basis recorded in statusHistory (e.g. vehicle class, rate id). |
0..1 | String | |
| TollTransaction | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| credential | Credential | The credential observed (licensePlate, rfid transponder…). | 0..1 | Structure (members below) | ||
| credential.credentialType | Credential type | Read technology. Senders SHOULD use an APDS CredentialTypeEnum value (licensePlate, rfid, …); Part 15 §15.1. |
0..1 | String | ||
| credential.credentialIdentification | Credential identification | What was read — the plate string or the transponder/tag id, as read. | 0..1 | String | ||
| transactionStatus | Transaction status | The lifecycle stage of the toll charge. † | 1..1 | TollTransaction.transactionStatus (enumeration) | read-only | |
| dispute | Dispute | The dispute raised against the charge, when one was opened (Part 15 §15.1). † | 0..1 | Structure (members below) | ||
| dispute.reason | Reason | definedValue from apx-toll-dispute-reasons or an implementer code list (Part 11). |
0..1 | String (code list apx-toll-dispute-reasons) | ||
| dispute.openedTime | Opened time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| dispute.resolvedTime | Resolved time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| dispute.resolution | Resolution | definedValue from apx-toll-dispute-resolutions (upheld | refunded | adjusted | withdrawn, Part 15 §15.1) or an implementer code list (Part 11). |
0..1 | String (code list apx-toll-dispute-resolutions) | ||
| statusHistory | Status history | Immutable lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The transaction status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| TollVoid | reason | Reason | Why the transaction is void (implementer code list, e.g. duplicate, exemptVehicle, misread). | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String |
A.1.12 "Violations" package
A.1.12.1 Location of "Violations" package. The location of the "Violations" package is:
-- APX/Violations (source: spec/openapi/domains/violations/schemas.yaml; normative text: APX Part 19)
A.1.12.2 Classes of the "Violations" package
Table A.35 -- Classes of the "Violations" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| EligibilityResult | Eligibility result | "Is this vehicle entitled to be here right now?" — the guided-enforcement screen-pop (Part 19 §19.3). A convenience READ composed from the APDS entities that natively answer the question: AssignedRights (APDS's own enforcement source of truth), Sessions, and reservation/permit profiles. Adds no parallel entitlement entity; the AssignedRight remains authoritative. | class | APX only |
| EnforcementPolicy | Enforcement policy | The jurisdictional rules that govern issuing and escalating violations at a place (Part 19 §19.10): lawful notice delivery per detection mode, the initial penalty cap, the escalation schedule, windows, and whether posted signage is required. Bound to a HierarchyElement with subtree inheritance — the nearest ancestor's policy applies unless a descendant overrides it. A machine-readable summary an operator configures from the governing statute; never the statute itself. Edits use versioned PUT with the version last read as If-Match or body version (Part 4 §4.2a; 409 version-conflict when stale). |
class | Proposed: EnforcementPolicy (Tier 2); Proposed: NoticeDeliveryRule (Tier 2); Proposed: PenaltyLimit (Tier 3); Proposed: EscalationStep (Tier 2) |
| Signage | Signage | A record of what is posted at a place — the text, a photo, the sign's position, and when it was in force (Part 19 §19.11). Bound to a HierarchyElement with subtree inheritance. Versioned so an appeal can show the sign as it stood on the day: superseding a sign is a new version or a new record with effectiveTo set, never an edit in place of historical text. Edits use versioned PUT (Part 4 §4.2a). |
class | Proposed: Signage (Tier 2); Proposed: SignTypeEnum (Tier 2) |
| Violation | Violation | An enforcement finding against a vehicle at a place: the detection (automated, guided, or manual), the eligibility check that justified it, the evidence, the issued notice/citation, settlement, and any appeal — with the immutable lifecycle audit (Part 4 §4.2). | class | Proposed: Violation (Tier 1); Proposed: Notice (Tier 1); Proposed: Appeal (Tier 2); Proposed: ViolationStatusEnum (Tier 1); Proposed: NoticeKindEnum (Tier 1); Proposed: NoticeDeliveryMethodEnum (Tier 1); Proposed: AppealReasonEnum (Tier 2); Proposed: AppealResolutionEnum (Tier 2) |
| ViolationAppealOpen | Violation appeal open | Request body opening an appeal on an issued violation, or on a paid one within the policy's appeal window (pay-then-appeal). | class | APX only |
| ViolationAppealResolution | Violation appeal resolution | Request body resolving an open appeal. | class | APX only |
| ViolationAppliedPayment | Violation applied payment | One payment applied to a violation (Part 19 §19.6a): a partial payment or the settling one. payment references the Part 13 record (APDS Payment or APX PaymentRecord) when the money moved through this server; a payment an import source took itself (§19.13) may carry only the source's own reference. |
class | APX only |
| ViolationDetection | Violation detection | How and when the candidate was found. | class | Proposed: ViolationDetection (Tier 1); Proposed: DetectionModeEnum (Tier 1) |
| ViolationEvidence | Violation evidence | Evidence media, as access-controlled LINKS (Part 9 §9.6 — never inline). Each item points at an APDS Image reachable under the same authentication and place grant as this resource. | list | APX only |
| ViolationImport | Violation import | Request body of POST /v1/enforcement/violation-imports (Part 19 §19.13): a violation as an external enforcement system reports it — in any state, with the statusHistory[] times the source recorded, the notice, the amounts and payments, and the apds-ext:apx:violation-source@1.0 decoration that keys it. The members mean what they mean on Violation; the difference is that violationStatus, notice, amountPaid, payments, and statusHistory are written by the caller here, because the source, not this server, decided them. A state at or past issuance (issued, paid, appealed, closed) REQUIRES notice (with noticeNumber and issuedTime) and amount (400 invalid-request otherwise); paid with amountPaid below amount is 422 request-unprocessable. A warning with no fine is issued (or closed) with notice.noticeKind warning and a zero amount. |
class | APX only |
| ViolationIssue | Violation issue | Request body issuing the notice/citation for a confirmed (or, under automated policy, detected) violation. | class | APX only |
| ViolationLocation | Violation location | Where the violation was observed and from where — modelled on the APDS Observation Location shape (Part 19 §19.9), with two differences: observerLocation is optional here (APDS requires it; an automated finding copied from a fixed sensor may have none), and accuracyMetres is added. The member names and the PointLocation types are APDS's own. GeoJSON positions are [longitude, latitude] in that order; enforcement tools that store latitude first MUST swap on the wire. Automated detections SHOULD copy this from the underlying Observation. |
class | APX only |
| ViolationPaymentAttachment | Violation payment attachment | Request body attaching a Payment to an issued violation. The full amount (or the remainder) settles it (paid); a smaller amount is a partial payment (Part 19 §19.6a) that stays issued. |
class | APX only |
| ViolationReview | Violation review | Request body for guided-enforcement review — confirm or dismiss a detected candidate. | class | APX only |
| ViolationSessionLink | Violation session link | Request body of POST /v1/violations/{id}/session (Part 19 §19.13): sets, corrects, or clears relatedSession after creation, carrying the match evidence. session: null clears the link. If-Match carries the Violation version last read. |
class | APX only |
| ViolationSource | Violation source | The apds-ext:apx:violation-source@1.0 decoration (Part 19 §19.13): a violation issued by an external enforcement system and imported through POST /v1/enforcement/violation-imports, keyed on system + recordId. sourceRevision, or without one sourceUpdatedTime, orders the source's revisions. |
class | APX only |
| ViolationVehicle | Violation vehicle | The credential observed on the vehicle (an APDS CredentialTypeEnum credential). | class | APX only |
| ViolationVoid | Violation void | Request body voiding a violation (terminal; never deletes the audit). | class | APX only |
A.1.12.3 Specializations of the "Violations" package
There are no specializations in the "Violations" package.
A.1.12.4 Associations of the "Violations" package
Table A.36 -- Associations of the "Violations" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| EligibilityResult | place | Place | The HierarchyElement the question was asked for. | 1..1 | PkCommon.Reference | |
| basis.right | Right | The AssignedRight considered. | 0..1 | PkCommon.Reference | ||
| basis.session | Session | The Session considered (pay-by-plate, transient). | 0..1 | PkCommon.Reference | ||
| lastRead.observation | Observation | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| EnforcementPolicy | place | Place | The HierarchyElement this policy binds to (a state- or city-wide root, a lot, a level). | 1..1 | PkCommon.Reference | |
| penaltyCap.maximumAmount | Maximum amount | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| escalation.addAmount | Add amount | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| overallCeiling.maximumAmount | Maximum amount | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| Signage | place | Place | The HierarchyElement the sign governs (the lot, a level, a zone). | 1..1 | PkCommon.Reference | |
| location | Location | Where the sign stands (GeoJSON Point). | 0..1 | PkCommon.GeoJsonObject | ||
| policy | Policy | The EnforcementPolicy whose disclosure requirements this sign satisfies, when applicable. | 0..1 | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| Violation | place | Place | The HierarchyElement (Place, Area, Space…) where the violation was observed. | 1..1 | PkCommon.Reference | |
| space | Space | The specific APDS Space, when the detection is space-resolved (sensor, bay camera). | 0..1 | PkCommon.Reference | ||
| detection | Detection | How and when the candidate was found. | 1..1 | Violations.ViolationDetection | ||
| vehicle | Vehicle | The credential observed on the vehicle (an APDS CredentialTypeEnum credential). | 0..1 | Violations.ViolationVehicle | ||
| observations | Observations | The underlying APDS Observations (plate reads, sensor events) the finding is built from. | 0..* | PkCommon.Reference | ||
| eligibilityCheck | Eligibility check | The entitlement check performed at detection time (the same shape GET /v1/enforcement/eligibility returns). |
0..1 | Violations.EligibilityResult | ||
| relatedSession | Related session | The APDS Session the vehicle was in, when one exists. | 0..1 | PkCommon.Reference | ||
| relatedRight | Related right | The AssignedRight that was closest to covering the stay (expired permit, wrong-zone reservation…). | 0..1 | PkCommon.Reference | ||
| location | Location | Where the violation was observed and from where — modelled on the APDS Observation Location shape (Part 19 §19.9), with two differences: observerLocation is optional here (APDS requires it; an automated finding copied from a fixed sensor may have none), and accuracyMetres is added. The member names and the PointLocation types are APDS's own. GeoJSON positions are [longitude, latitude] in that order; enforcement tools that store latitude first MUST swap on the wire. Automated detections SHOULD copy this from the underlying Observation. |
0..1 | Violations.ViolationLocation | ||
| policy | Policy | The EnforcementPolicy resolved for place at issue (Part 19 §19.10), frozen with its version. |
0..1 | PkCommon.VersionedReference | read-only | |
| signage | Signage | The Signage records in force at place (and ancestors) at detectedTime, frozen at issue with their versions — the evidence of what was posted (Part 19 §19.11). |
0..* | PkCommon.VersionedReference | read-only | |
| unpaidAmount | Unpaid amount | The unpaid parking fee this violation relates to — the basis for the policy's relative penalty caps (maximumMultipleOfUnpaid, maximumPercentOverUnpaid). Computed by the server at issue from the rate deck in force for the stay and frozen with the policy (Part 19 §19.10). Absent when the policy in force has no relative cap or no fee could be derived. |
0..1 | Rates.AmountInCurrency | read-only | |
| capAmount | Cap amount | The effective penalty cap at issue (the lowest of the policy's penaltyCap bounds, relative ones applied to unpaidAmount), frozen so an appeal can check penalty-exceeds-cap without recomputing it. Absent when no cap applied. |
0..1 | Rates.AmountInCurrency | read-only | |
| amountHistory.amount | Amount | A class supporting the definition of a unit of currency in a defined currency. | 1..1 | Rates.AmountInCurrency | ||
| amountHistory.requestedAmount | Requested amount | The amount the issue call asked for, when reason is cap (the entry's amount is the clamped figure). |
0..1 | Rates.AmountInCurrency | ||
| notice.issuedBy | Issued by | The issuing Organisation or officer Contact. | 0..1 | PkCommon.Reference | ||
| amount | Amount | The amount payable on the issued notice (after any appeal reduction). | 0..1 | Rates.AmountInCurrency | ||
| payment | Payment | Reference to the settling APDS Payment or APX PaymentRecord (Part 13). | 0..1 | PkCommon.Reference | ||
| payments | Payments | Every payment applied to the notice, in order (Part 19 §19.6a). payment remains the settling one; a partial payment appears here, raises amountPaid, and leaves the state issued until amountPaid reaches amount. For an imported violation (§19.13) an item may carry only the source's own payment reference, when the money never moved through this server's Part 13 records. |
0..* | Violations.ViolationAppliedPayment | read-only | |
| amountPaid | Amount paid | The sum received so far against amount (Part 19 §19.6a). paid means amountPaid ≥ amount. Absent means nothing received. |
0..1 | Rates.AmountInCurrency | read-only | |
| appeal.appellant | Appellant | The appealing party (Contact), when identified. | 0..1 | PkCommon.Reference | ||
| appeal.refund | Refund | The Part 13 refund (APX PaymentRecord or APDS Payment) that returned money on a pay-then-appeal resolved reduced (partial) or dismissed (full). |
0..1 | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ViolationAppealOpen | appellant | Appellant | The appealing party (Contact), when identified. | 0..1 | PkCommon.Reference | |
| ViolationAppealResolution | adjustedAmount | Adjusted amount | The new amount payable. Required when resolution is reduced; a reduced resolution without it is 400 invalid-request with errors[].pointer /adjustedAmount (Part 19 §19.1 rule 3). |
0..1 | Rates.AmountInCurrency | |
| refund | Refund | For a pay-then-appeal resolved reduced or dismissed: the Part 13 refund returning the difference or the whole payment (POST /v1/payments/{id}/refund). Recorded on appeal.refund. |
0..1 | PkCommon.Reference | ||
| ViolationAppliedPayment | amount | Amount | The amount applied to this violation. | 1..1 | Rates.AmountInCurrency | |
| payment | Payment | The APDS Payment or APX PaymentRecord (Part 13), when one exists on this server. | 0..1 | PkCommon.Reference | ||
| ViolationDetection | detector | Detector | The detecting device (SupplementalEquipment) or, for guided/manual, the officer's Contact. | 0..1 | PkCommon.Reference | |
| ViolationEvidence | item.device | Device | The capturing SupplementalEquipment (camera, handheld). | 0..1 | PkCommon.Reference | |
| ViolationImport | place | Place | The HierarchyElement where the violation was observed. | 1..1 | PkCommon.Reference | |
| space | Space | The specific APDS Space, when space-resolved. | 0..1 | PkCommon.Reference | ||
| detection | Detection | How and when the candidate was found. | 1..1 | Violations.ViolationDetection | ||
| vehicle | Vehicle | The credential observed on the vehicle (an APDS CredentialTypeEnum credential). | 0..1 | Violations.ViolationVehicle | ||
| observations | Observations | The underlying APDS Observations, when the source shared them. | 0..* | PkCommon.Reference | ||
| relatedSession | Related session | The APDS Session the vehicle was in, when known (or set later through POST /v1/violations/{id}/session). |
0..1 | PkCommon.Reference | ||
| relatedRight | Related right | The AssignedRight closest to covering the stay, when known. | 0..1 | PkCommon.Reference | ||
| location | Location | Where the violation was observed and from where — modelled on the APDS Observation Location shape (Part 19 §19.9), with two differences: observerLocation is optional here (APDS requires it; an automated finding copied from a fixed sensor may have none), and accuracyMetres is added. The member names and the PointLocation types are APDS's own. GeoJSON positions are [longitude, latitude] in that order; enforcement tools that store latitude first MUST swap on the wire. Automated detections SHOULD copy this from the underlying Observation. |
0..1 | Violations.ViolationLocation | ||
| notice.issuedBy | Issued by | The issuing Organisation or officer Contact, when it is known here. | 0..1 | PkCommon.Reference | ||
| amount | Amount | The amount payable now, as the source reports it. | 0..1 | Rates.AmountInCurrency | ||
| amountPaid | Amount paid | The total paid toward amount, as the source reports it. |
0..1 | Rates.AmountInCurrency | ||
| payments | Payments | The payments the source applied, in order. | 0..* | Violations.ViolationAppliedPayment | ||
| extensions | Extensions | The extension container; MUST carry apds-ext:apx:violation-source@1.0. |
1..1 | Common.Extensions | ||
| ViolationIssue | amount | Amount | A class supporting the definition of a unit of currency in a defined currency. | 1..1 | Rates.AmountInCurrency | |
| issuedBy | Issued by | The issuing Organisation or officer Contact, when different from the token's organisation. | 0..1 | PkCommon.Reference | ||
| ViolationLocation | observedLocation | Observed location | The vehicle's position (GeoJSON Point). | 0..1 | PkCommon.GeoJsonObject | |
| observerLocation | Observer location | The officer's or camera's position when the finding was made (GeoJSON Point). | 0..1 | PkCommon.GeoJsonObject | ||
| ViolationPaymentAttachment | payment | Payment | Reference to the settling APDS Payment (or APX PaymentRecord taken via POST /v1/payments). |
1..1 | PkCommon.Reference | |
| amount | Amount | The amount this payment contributes; absent means the full outstanding amount. | 0..1 | Rates.AmountInCurrency | ||
| ViolationReview | reviewer | Reviewer | The reviewing officer's Contact, when the token is a system credential. | 0..1 | PkCommon.Reference | |
| ViolationSessionLink | session | Session | The APDS Session (className Session), or null to clear the link. |
1..1 | PkCommon.Reference | nullable |
| evidence | Evidence | How the match was made; written onto the violation as apds-ext:apx:match-evidence@1.0, with the Session as target. |
0..1 | Data.MatchEvidence | ||
| ViolationVoid | refund | Refund | When voiding a paid violation: the Part 13 refund that returned the payment (SHOULD be given; Part 19 §19.1 rule 4). |
0..1 | PkCommon.Reference |
A.1.12.5 Attributes of the "Violations" package
Table A.37 -- Attributes of the "Violations" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| EligibilityResult | credential | Credential | The credential the eligibility question was asked about. † | 1..1 | Structure (members below) | |
| credential.credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 1..1 | Right.CredentialTypeEnum | ||
| credential.credentialIdentification | Credential identification | The plate or other credential value checked. † | 1..1 | String | ||
| checkedTime | Checked time | The instant the answer applies to (the at parameter, or now). |
1..1 | PkCommon.DateTime | ||
| entitled | Entitled | True when at least one basis entry is valid for the place at checkedTime. |
1..1 | Boolean | ||
| basis | Basis | Every right or session considered, newest first, with why it does or does not cover the stay. | 0..* | Structure (members below) | ||
| basis.rightType | Right type | Human-readable product (from the RightSpecification) — monthly permit, reservation, pay-by-plate. | 0..1 | String | ||
| basis.validFrom | Valid from | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| basis.validTo | Valid to | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| basis.status | Status | Why this basis does or does not entitle the vehicle here, now. | 1..1 | EligibilityResult.basis.status (enumeration) | ||
| suggestedViolationType | Suggested violation type | When not entitled — the apx-violation-types value the server's rules suggest (never binding on the officer). |
0..1 | String (code list apx-violation-types) | ||
| graceUntil | Grace until | When the grace on the stay ends, derived from the stayGrace of the EnforcementPolicy in force at checkedTime (Part 19 §19.3 rule 5): the stay's start plus entryMinutes while no right covers it, or the end of its last covering right plus exitMinutes once its rights have ended. Absent when that side has no grace, no policy is in force, or a right covers the stay. |
0..1 | PkCommon.DateTime | ||
| lastRead | Last read | The most recent plate read of this credential at the place (APDS Observation-derived). | 0..1 | Structure (members below) | ||
| lastRead.observationDateTime | Observation date time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| lastRead.confidence | Confidence | Confidence in the value, from 0 to 1. | 0..1 | Decimal | ||
| lastRead.imageLink | Image link | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| EnforcementPolicy | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| name | Name | Name in natural language. | 0..1 | String | ||
| policyStatus | Policy status | Whether the policy is in force, superseded or retired. † | 1..1 | EnforcementPolicy.policyStatus (enumeration) | ||
| effectiveFrom | Effective from | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| effectiveTo | Effective to | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| authority | Authority | Provenance — where the rules come from. | 0..1 | Structure (members below) | ||
| authority.jurisdiction | Jurisdiction | ISO 3166-2 or implementer code for the legal jurisdiction. | 0..1 | String | ||
| authority.citation | Citation | Statute, ordinance, or regulation citation. | 0..1 | String | ||
| authority.url | Url | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| deliveryRules | Delivery rules | Which notice delivery methods are lawful for which detection modes, and by when. | 0..* | Structure (members below) | ||
| deliveryRules.detectionModes | Detection modes | The detection modes this delivery rule covers. † | 0..* | EnforcementPolicy.deliveryRules.detectionModes (enumeration) | ||
| deliveryRules.deliveryMethods | Delivery methods | Lawful notice.deliveryMethod values for these modes (implementer code list — windshield, handed, mail, electronic). |
0..* | String | ||
| deliveryRules.noticeDeadline | Notice deadline | Latest lawful issue after detectedTime for these methods (ISO 8601). |
0..1 | PkCommon.Duration | ||
| deliveryRules.minimumEvidence | Minimum evidence | What the violation MUST carry before a notice by these methods is lawful. | 0..1 | Structure (members below) | ||
| deliveryRules.minimumEvidence.observations | Observations | The minimum number of observations the violation must carry before a notice by these methods is lawful (Part 19 §19.10). † | 0..1 | Integer | ||
| deliveryRules.minimumEvidence.images | Images | The minimum number of evidence images the violation must carry before a notice by these methods is lawful (Part 19 §19.10). † | 0..1 | Integer | ||
| deliveryRules.minimumEvidence.locationRequired | Location required | Whether the violation must carry an observed location before a notice by these methods is lawful (Part 19 §19.10). † | 0..1 | Boolean | ||
| unreviewedIssuance | Unreviewed issuance | Whether an automated detection may go detected → issued without a human review (Part 19 §19.4 rule 1). When present the server MUST apply it at issue (409 violation-not-issuable otherwise); when absent the operator's published documentation governs, as before. guided and manual detections are always reviewed, whatever this says. |
0..1 | Structure (members below) | ||
| unreviewedIssuance.permitted | Permitted | True when unreviewed automated issuance is lawful and permitted at this place. | 0..1 | Boolean | ||
| unreviewedIssuance.minimumConfidence | Minimum confidence | Lowest detection.confidence that may be issued unreviewed; a detection below it, or with no confidence, needs review. |
0..1 | Decimal | ||
| unreviewedIssuance.violationTypes | Violation types | The violationType values that may be issued unreviewed; absent = every type. |
0..* | String | ||
| penaltyCap | Penalty cap | Ceiling on the amount at issue. When more than one bound is present the lowest applies. Relative bounds apply to the violation's unpaidAmount, which the server computes and freezes at issue together with the resulting capAmount. |
0..1 | Structure (members below) | ||
| penaltyCap.maximumMultipleOfUnpaid | Maximum multiple of unpaid | Cap as a multiple of the unpaid parking fee the violation relates to (e.g. 2 = twice the unpaid fee). | 0..1 | Decimal | ||
| penaltyCap.maximumPercentOverUnpaid | Maximum percent over unpaid | Cap as unpaid fee plus this percentage of it. | 0..1 | Decimal | ||
| penaltyCap.onExceed | On exceed | refuse → 422 penalty-exceeds-cap; clamp → issue at the cap and record reason: cap in amountHistory. |
0..1 | EnforcementPolicy.penaltyCap.onExceed (enumeration) | ||
| escalation | Escalation | Ordered, server-applied steps (Part 19 §19.10). Each fires once when afterDays have elapsed since notice.issuedTime with the violation still issued; days spent appealed do not count (the clock pauses during an appeal). The result is appended to amountHistory and never exceeds overallCeiling. A step whose fixed addAmount alone exceeds overallCeiling.maximumAmount is refused at create/update (422 request-unprocessable). |
0..* | Structure (members below) | ||
| escalation.step | Step | Stable step id recorded in amountHistory[].step. |
1..1 | String | ||
| escalation.afterDays | After days | The days after the notice was issued, not counting days under appeal, at which the step fires (Part 19 §19.10). † | 1..1 | Integer | ||
| escalation.addPercent | Add percent | Percentage of the CURRENT amount to add. | 0..1 | Decimal | ||
| escalation.description | Description | Free-text description. | 0..1 | String | ||
| overallCeiling | Overall ceiling | Hard ceiling on amount after any escalation. |
0..1 | Structure (members below) | ||
| overallCeiling.maximumMultipleOfIssued | Maximum multiple of issued | e.g. 3 = never more than three times the issued amount. | 0..1 | Decimal | ||
| appealWindowDays | Appeal window days | Days after notice.issuedTime during which an appeal MUST be accepted — from issued, or from paid (pay-then-appeal). After it, servers MAY refuse with 409 appeal-closed. |
0..1 | Integer | ||
| paymentGraceDays | Payment grace days | Days after notice.issuedTime before the first escalation step MAY fire, regardless of afterDays (days spent appealed do not count). |
0..1 | Integer | ||
| signageRequired | Signage required | When true, issue is refused (422 signage-required) unless Signage was in force at the place at detectedTime. |
0..1 | Boolean | ||
| stayGrace | Stay grace | How long a stay may go uncovered at each end before it needs a right (Part 19 §19.10 rule 7). Both members are optional and independent: absent means no grace on that side, 0 states explicitly that there is none. The policy states the minutes only; how they combine with the rights into a stay's outcome is the evaluating system's rule. The source of EligibilityResult.graceUntil (§19.3 rule 5). |
0..1 | Structure (members below) | ||
| stayGrace.entryMinutes | Entry minutes | Minutes after entry before a right (a payment, a permit, a reservation) must cover the stay. | 0..1 | Integer | ||
| stayGrace.exitMinutes | Exit minutes | Minutes after the end of the last covering right before the stay must be over. | 0..1 | Integer | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The policy status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| Signage | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| text | Text | The posted text, verbatim, per language. | 1..1 | PkCommon.MultilingualString | ||
| signageStatus | Signage status | Whether the sign is in force, superseded or removed. † | 1..1 | Signage.signageStatus (enumeration) | ||
| effectiveFrom | Effective from | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| effectiveTo | Effective to | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| imageLink | Image link | Access-controlled photo of the physical sign (Part 9 §9.6). | 0..1 | PkCommon.Url | ||
| signType | Sign type | Implementer code list — entrance, payStation, perSpace, towAway, ratesBoard. | 0..1 | String | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The signage status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| Violation | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| violationType | Violation type | definedValue from apx-violation-types or an implementer code list. |
1..1 | String (code list apx-violation-types) | ||
| violationStatus | Violation status | Current lifecycle state (see schema description for transitions). | 1..1 | Violation.violationStatus (enumeration) | read-only | |
| evidence | Evidence | Evidence media, as access-controlled LINKS (Part 9 §9.6 — never inline). Each item points at an APDS Image reachable under the same authentication and place grant as this resource. | 0..1 | Violations.ViolationEvidence | ||
| amountHistory | Amount history | Every change to amount, in order: the issued amount, each server-applied escalation step, and each appeal reduction (Part 19 §19.10). amount always equals the last entry. The first entry is written at issue: reason: issued, or, when the requested amount was clamped to the cap, a single entry with reason: cap, the clamped amount, and the amount asked for in requestedAmount. |
0..* | Structure (members below) | read-only | |
| amountHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| amountHistory.reason | Reason | Why the action was taken. | 1..1 | Violation.amountHistory.reason (enumeration) | ||
| amountHistory.step | Step | The policy escalation step id that fired, when reason is escalation. |
0..1 | String | ||
| amountHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| notice | Notice | The notice, warning, or citation issued for this violation. Absent until issued. |
0..1 | Structure (members below) | read-only | |
| notice.noticeKind | Notice kind | What was issued — warning, notice, citation (implementer code list; jurisdictional vocabulary). | 0..1 | String | ||
| notice.noticeNumber | Notice number | The operator's/jurisdiction's printed or mailed notice number. | 0..1 | String | ||
| notice.issuedTime | Issued time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| notice.deliveryMethod | Delivery method | How the notice reached the driver — windshield, handed, mail, electronic (implementer code list). | 0..1 | String | ||
| dueTime | Due time | When payment falls due. | 0..1 | PkCommon.DateTime | ||
| appeal | Appeal | The appeal on this violation, if one was opened. One appeal per violation. | 0..1 | Structure (members below) | read-only | |
| appeal.reason | Reason | Appeal reason (implementer code list). | 0..1 | String | ||
| appeal.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| appeal.openedTime | Opened time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| appeal.openedFrom | Opened from | The state the appeal was opened from; paid is a pay-then-appeal (Part 19 §19.6). upheld and reduced return the violation to this state. |
0..1 | Violation.appeal.openedFrom (enumeration) | ||
| appeal.resolvedTime | Resolved time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| appeal.resolution | Resolution | upheld | reduced | dismissed (implementer code list). | 0..1 | String | ||
| appeal.resolutionNote | Resolution note | A free-text note explaining how the appeal was resolved. † | 0..1 | String | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The violation status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | Client/agent principal that caused the transition. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| ViolationAppealOpen | reason | Reason | Appeal reason (implementer code list). | 1..1 | String | |
| detail | Detail | Further detail, in free text. | 0..1 | String | ||
| evidenceLinks | Evidence links | Appellant-supplied evidence, as access-controlled links. | 0..* | PkCommon.Url | ||
| ViolationAppealResolution | resolution | Resolution | upheld | reduced | dismissed (implementer code list). upheld returns the violation to the state the appeal was opened from (issued, or paid for a pay-then-appeal); reduced does the same with amount replaced by adjustedAmount; dismissed closes it. |
1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ViolationAppliedPayment | paidTime | Paid time | When the payment was made (for an import, as the source reported it). | 0..1 | PkCommon.DateTime | |
| reference | Reference | The import source's own identifier for the payment, when it reported one. | 0..1 | String | ||
| ViolationDetection | mode | Mode | automated — a camera/sensor pipeline created the violation with no human in the loop. guided — the system surfaced a candidate (typically to a handheld) and an officer confirms on site. manual — an officer created the violation directly. |
1..1 | ViolationDetection.mode (enumeration) | |
| detectedTime | Detected time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| principal | Principal | Opaque principal of the human or system that detected (officer badge id, pipeline name). | 0..1 | String | ||
| confidence | Confidence | Detection confidence (plate read × rule certainty), when the detector reports one. | 0..1 | Decimal | ||
| rule | Rule | Implementer identifier of the enforcement rule that fired (automated mode). | 0..1 | String | ||
| ViolationEvidence | item.imageLink | Image link | Represents a Url for an internet accessible resource. | 1..1 | PkCommon.Url | |
| item.imageType | Image type | the nature of the captured image | 0..1 | Observation.ImageTypeEnum | ||
| item.capturedTime | Captured time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| item.description | Description | Free-text description. | 0..1 | String | ||
| ViolationImport | id | Id | The source's id for the violation, when it is a UUID the server may keep; the server MAY mint its own. | 0..1 | Uuid | |
| violationType | Violation type | definedValue from apx-violation-types or an implementer code list. |
1..1 | String (code list apx-violation-types) | ||
| violationStatus | Violation status | The APX state the source's status maps to. paid requires amountPaid at least amount; a part-paid violation is issued (Part 19 §19.6a). The source's own wording goes in the decoration's sourceStatus. |
1..1 | ViolationImport.violationStatus (enumeration) | ||
| evidence | Evidence | Evidence media, as access-controlled LINKS (Part 9 §9.6 — never inline). Each item points at an APDS Image reachable under the same authentication and place grant as this resource. | 0..1 | Violations.ViolationEvidence | ||
| notice | Notice | The notice, warning, or citation as the source issued it. | 0..1 | Structure (members below) | ||
| notice.noticeKind | Notice kind | warning | notice | citation (implementer code list). | 0..1 | String | ||
| notice.noticeNumber | Notice number | The number printed on the notice — the lookup a driver can make (?noticeNumber=). |
1..1 | String | ||
| notice.issuedTime | Issued time | When the source issued it, as the source reported it. | 1..1 | PkCommon.DateTime | ||
| notice.deliveryMethod | Delivery method | windshield | handed | mail | electronic (implementer code list). | 0..1 | String | ||
| dueTime | Due time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| statusHistory | Status history | The lifecycle as the source recorded it, oldest first, with the source's own times (actor is the source's principal — an officer badge, the system name). Append-only: the server keeps the entries it already holds and appends only those later than its last one (Part 4 §4.2). |
1..* | Structure (members below) | ||
| statusHistory.state | State | The violation status the source recorded at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| ViolationIssue | noticeKind | Notice kind | warning | notice | citation (implementer code list). Default is implementation policy. | 0..1 | String | |
| noticeNumber | Notice number | Client-supplied notice number (pre-printed handheld stock). Server-assigned when absent. | 0..1 | String | ||
| dueTime | Due time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| deliveryMethod | Delivery method | windshield | handed | mail | electronic (implementer code list). | 0..1 | String | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ViolationLocation | observedLocationTextual | Observed location textual | Human-readable address or description of the observed location. | 0..1 | PkCommon.MultilingualString | |
| accuracyMetres | Accuracy metres | Horizontal accuracy reported by the capturing device. | 0..1 | Decimal | ||
| ViolationPaymentAttachment | note | Note | Free-text note from the actor. | 0..1 | String | |
| ViolationReview | decision | Decision | The reviewer's decision on the detected candidate: confirm or dismiss. † | 1..1 | ViolationReview.decision (enumeration) | |
| reason | Reason | Required when decision is dismiss (implementer code list — permitDisplayed, plateMisread, gracePeriod…); a dismissal without it is 400 invalid-request with errors[].pointer /reason (Part 19 §19.1 rule 1). |
0..1 | String | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| violationType | Violation type | Corrects the violation type on confirmation, when the officer's finding differs from the detector's. | 0..1 | String | ||
| ViolationSessionLink | reason | Reason | Why the link was set or changed (implementer code list — lateMatch, reviewerCorrection, mismatch…). | 0..1 | String | |
| ViolationSource | system | System | The issuing system, opaque (passport, aims…). |
1..1 | String | |
| recordId | Record id | The source's own citation or record id. | 1..1 | String | ||
| sourceStatus | Source status | The source's own status vocabulary, carried as reported (issued, warned, voided, dismissed, partiallyPaid…). |
0..1 | String | ||
| sourceRevision | Source revision | The source's revision counter; a re-import with a higher value updates the record. | 0..1 | Integer | ||
| sourceUpdatedTime | Source updated time | When the source last changed the record. Orders revisions when the source keeps no sourceRevision. |
0..1 | PkCommon.DateTime | ||
| receivedTime | Received time | When this server applied the revision it now holds. Server-set. | 0..1 | PkCommon.DateTime | read-only | |
| officer | Officer | The source's officer identifier, opaque. | 0..1 | String | ||
| violationCode | Violation code | The source's own violation code, when it has no apx-violation-types equivalent. |
0..1 | String (code list apx-violation-types) | ||
| ViolationVehicle | credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 1..1 | Right.CredentialTypeEnum | |
| credentialIdentification | Credential identification | The credential value — plate string, permit number, transponder id. | 1..1 | String | ||
| jurisdiction | Jurisdiction | Issuing jurisdiction of the plate/credential (state, province, country code). | 0..1 | String | ||
| description | Description | Free-text vehicle description captured by the officer (make, colour). | 0..1 | String | ||
| ViolationVoid | reason | Reason | Void reason (implementer code list — issuedInError, duplicate, policyException…). | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String |
A.1.13 "Validations" package
A.1.13.1 Location of "Validations" package. The location of the "Validations" package is:
-- APX/Validations (source: spec/openapi/domains/validations/schemas.yaml; normative text: APX Part 20)
A.1.13.2 Classes of the "Validations" package
Table A.38 -- Classes of the "Validations" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| ValidationBenefit | Validation benefit | What a validation is worth. Exactly one of amount (money off), duration (comped time, valued at the applicable rate), or percentage (proportionate discount — the APDS RateDiscount discountRate semantics) applies; description is always present so agents can answer disputes in plain language. A program body whose benefit carries none or more than one of the three is refused with 422 request-unprocessable (Part 20 §20.1); the rule is stated here rather than as a schema oneOf so that existing request bodies keep validating. |
class | Proposed: ValidationBenefit (Tier 2) |
| ValidationInstrument | Validation instrument | The current state of one validation code — the pay-station / merchant-app "is this code good?" read. | class | Proposed: ValidationInstrument (Tier 2); Proposed: ValidationInstrumentStatusEnum (Tier 2) |
| ValidationIssuance | Validation issuance | A batch of validation instruments issued to a program — printed codes, QR codes, stamp stock, digital tokens. codes[] is returned EXACTLY ONCE, in the creation response (the webhook-secret convention, Part 8 §8.1); later reads omit it. stamp and api batches carry no codes. |
class | Proposed: ValidationIssuance (Tier 2); Proposed: ValidationIssuanceMethodEnum (Tier 2); Proposed: ValidationIssuanceStatusEnum (Tier 2) |
| ValidationIssuanceRequest | Validation issuance request | Request body for POST /v1/validations/programs/{id}/issuances: the writable members of ValidationIssuance. The program is the one the path names; program MAY be repeated in the body, and a value that differs from the path is 422 request-unprocessable (Part 20 §20.2). Server-assigned members (id, version, codes, issuanceStatus) are ignored if sent. |
class | APX only |
| ValidationProgram | Validation program | A merchant's enrolment to validate parking at a place: who the provider is, what the validation is worth, the rules that bound it, how the merchant is billed, and how instruments are issued. Active programs ARE the source of the Part 6 GET /v1/validations/providers list when apx-validations is claimed. |
class | Proposed: ValidationProgram (Tier 2); Proposed: ValidationRules (Tier 2); Proposed: ValidationBilling (Tier 3); Proposed: ValidationBillingModelEnum (Tier 3); Proposed: ValidationBillingCycleEnum (Tier 3) |
| ValidationRedemption | Validation redemption | One validation applied to one ticket/session — the ledger entry every channel writes: a pay station scanning a code, a merchant app, an agent's applyValidation command (Part 6), or a lane device. validationId is the APDS Segment.validationId, so APDS consumers see the same redemption without speaking APX. amountReduced is the ACTUAL value removed from the amount due (dispute evidence), never the nominal benefit. |
class | Proposed: ValidationRedemption (Tier 1); Proposed: ValidationRedemptionStatusEnum (Tier 1) |
| ValidationRedemptionReversal | Validation redemption reversal | Request body reversing a redemption (wrong ticket, merchant dispute, fraud). | class | APX only |
| ValidationStatement | Validation statement | A program's redemptions and billable total for a period. Returned as a computed preview by GET …/statement, and as an IMMUTABLE record once a period is closed by POST …/statements (statementStatus: closed; the operator's accounting system invoices from it). Closed periods MUST NOT overlap (409 statement-overlap). |
class | APX only |
| ValidationStatementClose | Validation statement close | Request body closing a billing period for a program. | class | APX only |
| ValidationVoid | Validation void | Request body voiding an issuance batch or a single instrument code (Part 20 §20.2 rule 5) — a stolen sheet, a leaked code, a misprint. | class | APX only |
| ValidationVoidDetail | Validation void detail | Who voided an issuance or instrument, when, and why. Present once void. |
class | APX only |
A.1.13.3 Specializations of the "Validations" package
There are no specializations in the "Validations" package.
A.1.13.4 Associations of the "Validations" package
Table A.39 -- Associations of the "Validations" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| ValidationBenefit | amount | Amount | Fixed money off. | 0..1 | Rates.AmountInCurrency | |
| ValidationInstrument | program | Program | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| issuance | Issuance | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| benefit | Benefit | What redeeming this code is worth (from the program), so a pay station can show it before applying. | 0..1 | Validations.ValidationBenefit | ||
| redemption | Redemption | The ValidationRedemption that consumed the code, when redeemed. |
0..1 | PkCommon.Reference | ||
| voidDetail | Void detail | Who voided an issuance or instrument, when, and why. Present once void. |
0..1 | Validations.ValidationVoidDetail | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ValidationIssuance | program | Program | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| voidDetail | Void detail | Who voided an issuance or instrument, when, and why. Present once void. |
0..1 | Validations.ValidationVoidDetail | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ValidationIssuanceRequest | program | Program | Optional; defaults to, and MUST equal, the program in the path. | 0..1 | PkCommon.Reference | |
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ValidationProgram | place | Place | The HierarchyElement (Place or subtree root) the program validates parking at. | 1..1 | PkCommon.Reference | |
| provider | Provider | The merchant — an APDS Contact or Organisation. | 1..1 | PkCommon.Reference | ||
| benefit | Benefit | What a validation is worth. Exactly one of amount (money off), duration (comped time, valued at the applicable rate), or percentage (proportionate discount — the APDS RateDiscount discountRate semantics) applies; description is always present so agents can answer disputes in plain language. A program body whose benefit carries none or more than one of the three is refused with 422 request-unprocessable (Part 20 §20.1); the rule is stated here rather than as a schema oneOf so that existing request bodies keep validating. |
1..1 | Validations.ValidationBenefit | ||
| rules.applicableRateTables | Applicable rate tables | Restrict to these APDS RateTables; absent = all tables at the place that accept validations. | 0..* | PkCommon.Reference | ||
| billing.unitPrice | Unit price | What the merchant pays per redemption (merchantPays), or the base for merchantShare (split). Absent = billed at the actual amount reduced. |
0..1 | Rates.AmountInCurrency | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ValidationRedemption | program | Program | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | ||
| session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| command | Command | The Part 6 Command that applied it, when the channel was callCenter/api via applyValidation. |
0..1 | PkCommon.Reference | ||
| amountReduced | Amount reduced | Actual reduction of the amount due. | 0..1 | Rates.AmountInCurrency | ||
| reversal.closedStatement | Closed statement | When the redemption was already billed on a closed statement: that statement. It is not edited; the correction is a credit line on the next closed statement (Part 20 §20.4). | 0..1 | PkCommon.Reference | ||
| reversal.creditedOn | Credited on | The closed statement carrying the credit line for this reversal; absent until that period closes. | 0..1 | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ValidationStatement | program | Program | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| totalReduced | Total reduced | Sum of amountReduced over applied redemptions. |
0..1 | Rates.AmountInCurrency | ||
| billableAmount | Billable amount | What the merchant owes for the period under the program's billing model, net of any credit lines (reversals of redemptions billed on an earlier closed statement, Part 20 §20.6). |
1..1 | Rates.AmountInCurrency | ||
| lines.redemption | Redemption | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | ||
| lines.originalStatement | Original statement | For a credit line, the closed statement that billed the redemption. |
0..1 | PkCommon.Reference | ||
| lines.amountReduced | Amount reduced | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| lines.billable | Billable | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.13.5 Attributes of the "Validations" package
Table A.40 -- Attributes of the "Validations" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| ValidationBenefit | description | Description | Free-text description. | 1..1 | String | |
| duration | Duration | Comped parking time (ISO 8601), valued at the applicable rate. | 0..1 | PkCommon.Duration | ||
| percentage | Percentage | Proportionate discount on the amount due (APDS RateDiscount.discountRate semantics). | 0..1 | Decimal | ||
| ValidationInstrument | code | Code | The instrument's code. † | 1..1 | String | |
| instrumentStatus | Instrument status | Whether the instrument may still be redeemed. † | 1..1 | ValidationInstrument.instrumentStatus (enumeration) | ||
| validFrom | Valid from | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| validTo | Valid to | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| ValidationIssuance | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| quantity | Quantity | The number of instruments in the batch. † | 1..1 | Integer | ||
| method | Method | The form of the instruments in the batch. † | 1..1 | ValidationIssuance.method (enumeration) | ||
| validFrom | Valid from | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| validTo | Valid to | Expiry of every instrument in the batch; defaults from the program's rules.validityWindow. |
0..1 | PkCommon.DateTime | ||
| issuedTo | Issued to | Opaque principal or merchant contact the stock was handed to. | 0..1 | String | ||
| codes | Codes | The instrument codes — present ONLY in the creation response. | 0..* | String | read-only | |
| issuanceStatus | Issuance status | void after POST …/issuances/{issuanceId}/void (Part 20 §20.2 rule 5). |
1..1 | ValidationIssuance.issuanceStatus (enumeration) | read-only | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValidationIssuanceRequest | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 0..1 | Integer | read-only | |
| quantity | Quantity | The number of instruments to issue in the batch. † | 1..1 | Integer | ||
| method | Method | The form of the instruments to issue. † | 1..1 | ValidationIssuanceRequest.method (enumeration) | ||
| validFrom | Valid from | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| validTo | Valid to | Expiry of every instrument in the batch; defaults from the program's rules.validityWindow. |
0..1 | PkCommon.DateTime | ||
| issuedTo | Issued to | Opaque principal or merchant contact the stock was handed to. | 0..1 | String | ||
| codes | Codes | Server-generated instrument codes; ignored if sent (Part 20 §20.2). † | 0..* | String | read-only | |
| issuanceStatus | Issuance status | Server-assigned batch status; ignored if sent (Part 20 §20.2). † | 0..1 | ValidationIssuanceRequest.issuanceStatus (enumeration) | read-only | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValidationProgram | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| name | Name | Display name shown to agents and on receipts. | 0..1 | String | ||
| validationType | Validation type | Implementer code list naming the validation product (matches ValidationProvider.validationType). |
0..1 | String | ||
| programStatus | Program status | The program's lifecycle state (Part 20 §20.1). † | 1..1 | ValidationProgram.programStatus (enumeration) | ||
| rules | Rules | The closed rule set every implementation evaluates at redemption (Part 20 §20.3). Anything beyond it rides in extensions. |
0..1 | Structure (members below) | ||
| rules.maxPerTicket | Max per ticket | Redemptions of THIS program allowed on one ticket/session. | 0..1 | Integer | ||
| rules.maxPerDay | Max per day | Redemptions of this program allowed per calendar day at the place. | 0..1 | Integer | ||
| rules.validityWindow | Validity window | How long after issuance an instrument stays redeemable (ISO 8601). | 0..1 | PkCommon.Duration | ||
| rules.stackable | Stackable | Whether this program may combine with other programs on the same ticket. Evaluated both ways (Part 20 §20.3 rule 3): a redemption is refused when the incoming program is not stackable and another program is already applied, or when any program already applied is not stackable. | 0..1 | Boolean | ||
| billing | Billing | How the operator charges the merchant for redemptions. | 0..1 | Structure (members below) | ||
| billing.model | Model | Vehicle model. | 1..1 | ValidationProgram.billing.model (enumeration) | ||
| billing.merchantShare | Merchant share | Percentage of the amount reduced the merchant pays under split. |
0..1 | Decimal | ||
| billing.billingCycle | Billing cycle | How often the merchant is billed for redemptions. † | 0..1 | ValidationProgram.billing.billingCycle (enumeration) | ||
| issuanceMethods | Issuance methods | Instrument forms this program may issue. | 0..* | ValidationProgram.issuanceMethods (enumeration) | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The program status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| ValidationRedemption | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| instrumentCode | Instrument code | The code redeemed, when the channel used one. | 0..1 | String | ||
| ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| appliedTime | Applied time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| channel | Channel | The channel through which the validation was applied (Part 20 §20.3). † | 1..1 | ValidationRedemption.channel (enumeration) | ||
| appliedBy | Applied by | Opaque principal (device id, merchant user, agent id). | 0..1 | String | ||
| validationId | Validation id | The APDS Segment.validationId materialized on the session. | 0..1 | String | read-only | |
| durationComped | Duration comped | ISO8601 format definition of an interval of time in format [PnnYnnMnnDTnnHnnMnnS]. | 0..1 | PkCommon.Duration | ||
| redemptionStatus | Redemption status | Whether the redemption stands or was reversed. † | 1..1 | ValidationRedemption.redemptionStatus (enumeration) | read-only | |
| reversal | Reversal | How and when the redemption was reversed, and any statement it was billed or credited on (Part 20 §20.4). † | 0..1 | Structure (members below) | read-only | |
| reversal.reason | Reason | Why the action was taken. | 0..1 | String | ||
| reversal.note | Note | Free-text note from the actor. | 0..1 | String | ||
| reversal.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| reversal.actor | Actor | The person or system that performed the action. | 0..1 | String | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The redemption status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| ValidationRedemptionReversal | reason | Reason | Implementer code list. | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValidationStatement | id | Id | Present only on closed statements. | 0..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 0..1 | Integer | read-only | |
| periodStart | Period start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| periodEnd | Period end | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statementStatus | Statement status | Whether the statement is a computed preview or a closed, immutable record (Part 20 §20.6). † | 0..1 | ValidationStatement.statementStatus (enumeration) | read-only | |
| billingModel | Billing model | The program's billing model the statement was computed under. † | 0..1 | ValidationStatement.billingModel (enumeration) | ||
| redemptionCount | Redemption count | Applied redemptions in the period (reversed ones excluded). | 1..1 | Integer | ||
| reversedCount | Reversed count | The number of redemptions in the period that were reversed. † | 0..1 | Integer | ||
| creditCount | Credit count | Number of credit lines — post-closure reversals credited in this period. |
0..1 | Integer | ||
| lines | Lines | Per-redemption detail; MAY be omitted from list responses. | 0..* | Structure (members below) | ||
| lines.lineKind | Line kind | redemption (default when absent) — a redemption applied in the period. credit — a redemption billed on an earlier closed statement and reversed since; billable is negative. |
0..1 | ValidationStatement.lines.lineKind (enumeration) | ||
| lines.appliedTime | Applied time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| lines.ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| closedTime | Closed time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| closedBy | Closed by | The principal that closed the statement. † | 0..1 | String | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValidationStatementClose | periodStart | Period start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | |
| periodEnd | Period end | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValidationVoid | reason | Reason | Implementer code list — lost, stolen, leaked, misprint, programEnded. | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValidationVoidDetail | reason | Reason | Why the action was taken. | 0..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| actor | Actor | The person or system that performed the action. | 0..1 | String | ||
| voidedCount | Voided count | On an issuance, how many un-redeemed instruments the void moved to void (redeemed ones are unaffected). |
0..1 | Integer |
A.1.14 "Credentials" package
A.1.14.1 Location of "Credentials" package. The location of the "Credentials" package is:
-- APX/Credentials (source: spec/openapi/domains/credentials/schemas.yaml; normative text: APX Part 21)
A.1.14.2 Classes of the "Credentials" package
Table A.41 -- Classes of the "Credentials" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| AccessEvent | Access event | One access attempt at a lane, whether or not the presented credential matched a CredentialRecord — the item of GET /v1/access-events and the data of apx.credentials.access.v1. credential is REQUIRED whenever a record matched; it is absent only for denialReason: unknownCredential, where presented is REQUIRED instead (Part 21 §21.4). Every CredentialAccessEvent is a valid AccessEvent; this schema exists because CredentialAccessEvent.credential is required and relaxing it would break clients of the per-credential history. |
class | Proposed: AccessEvent (Tier 1); Proposed: AccessOutcomeEnum (Tier 1) |
| CredentialAccessEvent | Credential access event | One access attempt with a credential at a lane — granted or denied, and why. Fills the gap that APDS EventTypeEnum has no access events (published as apx.credentials.access.v1). |
class | APX only |
| CredentialRecord | Credential record | One access credential — keycard, fob, RFID tag or transponder, mobile credential, hangtag, or a plate used as the credential — with its holder, validity, physical media, and lifecycle. credentialType is the APDS read technology; media.form is the physical form. |
class | Proposed: CredentialAssigned (Tier 1); Proposed: CredentialMedia (Tier 1); Proposed: CredentialSuspension (Tier 1); Proposed: CredentialStatusEnum (Tier 1); Proposed: CredentialMediaFormEnum (Tier 1); Proposed: DepositStatusEnum (Tier 1) |
| CredentialReplaceRequest | Credential replace request | Request body issuing a successor credential. The new record inherits holder, account, assigned rights, places, and validity unless overridden; the old record becomes replaced and is removed from the APDS AssignedRights at the same instant the successor is materialized. |
class | APX only |
| CredentialTransition | Credential transition | Request body for activate / suspend / resume / report-lost / revoke. | class | APX only |
| PresentedCredential | Presented credential | What the reader actually read at the lane. Carried on an access event when no CredentialRecord matched (denialReason: unknownCredential), and MAY be carried otherwise. Personal data under Part 21 §21.5: returned only under apx.credentials:* scopes. |
class | Proposed: PresentedCredential (Tier 1) |
A.1.14.3 Specializations of the "Credentials" package
There are no specializations in the "Credentials" package.
A.1.14.4 Associations of the "Credentials" package
Table A.42 -- Associations of the "Credentials" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| AccessEvent | credential | Credential | The matched CredentialRecord; absent only when nothing matched. | 0..1 | PkCommon.Reference | |
| presented | Presented | What the reader actually read at the lane. Carried on an access event when no CredentialRecord matched (denialReason: unknownCredential), and MAY be carried otherwise. Personal data under Part 21 §21.5: returned only under apx.credentials:* scopes. |
0..1 | Credentials.PresentedCredential | ||
| place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| lane | Lane | The VehicularAccess where the attempt occurred. | 0..1 | PkCommon.Reference | ||
| device | Device | The reader (SupplementalEquipment). | 0..1 | PkCommon.Reference | ||
| session | Session | The APDS Session opened or closed by a granted access. | 0..1 | PkCommon.Reference | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| CredentialAccessEvent | credential | Credential | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| lane | Lane | The VehicularAccess where the attempt occurred. | 0..1 | PkCommon.Reference | ||
| device | Device | The reader (SupplementalEquipment). | 0..1 | PkCommon.Reference | ||
| session | Session | The APDS Session opened or closed by a granted access. | 0..1 | PkCommon.Reference | ||
| presented | Presented | What the reader actually read at the lane. Carried on an access event when no CredentialRecord matched (denialReason: unknownCredential), and MAY be carried otherwise. Personal data under Part 21 §21.5: returned only under apx.credentials:* scopes. |
0..1 | Credentials.PresentedCredential | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| CredentialRecord | holder | Holder | The APDS RightHolder (or Contact) the credential is issued to. | 0..1 | PkCommon.Reference | |
| account | Account | The APX Account (Part 13) this credential belongs to, when the holder is a billable account. | 0..1 | PkCommon.Reference | ||
| assignedRights | Assigned rights | The APDS AssignedRights this credential is materialized on (Part 21 §21.2). | 0..* | PkCommon.Reference | ||
| places | Places | HierarchyElement subtree roots this credential is valid at. | 0..* | PkCommon.Reference | ||
| media.deposit | Deposit | Deposit taken for the physical item. | 0..1 | Rates.AmountInCurrency | ||
| replaces | Replaces | The CredentialRecord this one succeeded. | 0..1 | PkCommon.Reference | ||
| replacedBy | Replaced by | The successor, when replaced. |
0..1 | PkCommon.Reference | read-only | |
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| CredentialReplaceRequest | media.deposit | Deposit | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency |
A.1.14.5 Attributes of the "Credentials" package
Table A.43 -- Attributes of the "Credentials" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| AccessEvent | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | |
| occurredAt | Occurred at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| direction | Direction | Whether the attempt was to enter or to leave. † | 1..1 | AccessEvent.direction (enumeration) | ||
| outcome | Outcome | Whether access was granted or refused. † | 1..1 | AccessEvent.outcome (enumeration) | ||
| denialReason | Denial reason | When denied — definedValue from apx-access-denial-reasons or an implementer code list (Part 11). |
0..1 | String (code list apx-access-denial-reasons) | ||
| CredentialAccessEvent | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | |
| occurredAt | Occurred at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| direction | Direction | Whether the attempt was to enter or to leave. † | 1..1 | CredentialAccessEvent.direction (enumeration) | ||
| outcome | Outcome | Whether access was granted or refused. † | 1..1 | CredentialAccessEvent.outcome (enumeration) | ||
| denialReason | Denial reason | When denied — definedValue from apx-access-denial-reasons or an implementer code list (Part 11). The credential* values mirror the non-active lifecycle states. |
0..1 | String (code list apx-access-denial-reasons) | ||
| CredentialRecord | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| credentialType | Credential type | The APDS read technology (rfid, bluetooth, electronicID, hangtag, licensePlate…). | 1..1 | Right.CredentialTypeEnum | ||
| credentialIdentification | Credential identification | The value the lane reads — card number, tag id, plate. Unique per (credentialType) within the implementation among non-terminal records; a collision is 409 credential-identification-in-use whose detail MUST NOT identify the holding record, its holder, or its place (Part 21 §21.1 rule 2, §21.5). |
1..1 | String | ||
| credentialAssignedType | Credential assigned type | APDS CredentialAssignedTypeEnum — what the credential identifies. | 0..1 | CredentialRecord.credentialAssignedType (enumeration) | ||
| validity | Validity | When the credential may be used. end, when given, MUST be in the future at issue and after start; otherwise the issue is 422 request-unprocessable (Part 21 §21.1 rule 7). |
0..1 | Structure (members below) | ||
| validity.start | Start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| validity.end | End | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| activateOnStart | Activate on start | When true, the server moves the record issued → active by itself at validity.start (or at issue, when validity.start is absent or already past), with actor system, and publishes apx.credentials.status.v1 (Part 21 §21.1 rule 6). When false or absent the record stays issued until activate is called — the card handed over at the desk. |
0..1 | Boolean | ||
| media | Media | The physical (or virtual) form the credential was issued on. | 0..1 | Structure (members below) | ||
| media.form | Form | The physical or virtual form of the item the credential was issued on. † | 0..1 | CredentialRecord.media.form (enumeration) | ||
| media.serialNumber | Serial number | Manufacturer or stock serial of the physical item (distinct from credentialIdentification). |
0..1 | String | ||
| media.batch | Batch | Stock batch or print run. | 0..1 | String | ||
| media.issuedTime | Issued time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| media.depositStatus | Deposit status | What has happened to the deposit taken for the item. † | 0..1 | CredentialRecord.media.depositStatus (enumeration) | ||
| credentialStatus | Credential status | The credential's lifecycle status (Part 21 §21.1). † | 1..1 | CredentialRecord.credentialStatus (enumeration) | read-only | |
| suspension | Suspension | Present while suspended. |
0..1 | Structure (members below) | read-only | |
| suspension.reason | Reason | Why the action was taken. | 0..1 | String | ||
| suspension.until | Until | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The credential status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String | ||
| CredentialReplaceRequest | reason | Reason | Implementer code list (lost, stolen, damaged, upgrade, reissue). | 1..1 | String | |
| credentialType | Credential type | Successor read technology; defaults to the old record's. | 0..1 | Right.CredentialTypeEnum | ||
| credentialIdentification | Credential identification | Successor identification; server-assigned when absent (pre-encoded stock). | 0..1 | String | ||
| media | Media | Successor media; same shape as CredentialRecord.media. |
0..1 | Structure (members below) | ||
| media.form | Form | The physical or virtual form of the successor's item. † | 0..1 | CredentialReplaceRequest.media.form (enumeration) | ||
| media.serialNumber | Serial number | The serial number of the successor's physical item. † | 0..1 | String | ||
| media.batch | Batch | The batch the successor's physical item belongs to. † | 0..1 | String | ||
| oldDepositStatus | Old deposit status | What happens to the old record's deposit. | 0..1 | CredentialReplaceRequest.oldDepositStatus (enumeration) | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| CredentialTransition | reason | Reason | Implementer code list (nonPayment, holderRequest, securityIncident, stolen…). | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| until | Until | For suspend — automatic resume time; absent = until resumed. MUST be in the future; a past until is 422 request-unprocessable (Part 21 §21.1 rule 7). |
0..1 | PkCommon.DateTime | ||
| PresentedCredential | credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 1..1 | Right.CredentialTypeEnum | |
| credentialIdentification | Credential identification | The value read (card number, tag id, plate). | 1..1 | String |
A.1.15 "Valet" package
A.1.15.1 Location of "Valet" package. The location of the "Valet" package is:
-- APX/Valet (source: spec/openapi/domains/valet/schemas.yaml; normative text: APX Part 22)
A.1.15.2 Classes of the "Valet" package
Table A.44 -- Classes of the "Valet" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| ConditionReport | Condition report | The vehicle's condition as recorded by an attendant (or a scanning device) at drop-off or handback: free-text notes, per-area damage entries, and access-controlled image links (Part 9 §9.6). The drop-off report is the evidence a damage claim is answered with. | class | Proposed: ConditionReport (Tier 2); Proposed: DamageItem (Tier 2); Proposed: DamageSeverityEnum (Tier 2) |
| ValetCancelRequest | Valet cancel request | Request body abandoning a drop-off before custody was taken; the ticket becomes cancelled (terminal). |
class | APX only |
| ValetCancelRetrievalRequest | Valet cancel retrieval request | Request body cancelling an open retrieval request; the vehicle returns to parked. |
class | APX only |
| ValetHandbackRequest | Valet handback request | Request body handing the vehicle to a verified customer, with the handback condition report. | class | APX only |
| ValetParkRequest | Valet park request | Request body recording where the vehicle was parked and where its keys are. | class | APX only |
| ValetPickupRequest | Valet pickup request | Request body recording that a runner has gone to fetch the car (requested → retrieving). |
class | APX only |
| ValetRetrievalRequest | Valet retrieval request | Request body asking for the car — from the customer (text, app, web, voice bot) or an attendant. | class | APX only |
| ValetStageRequest | Valet stage request | Request body recording the vehicle at the staging lane, ready for handback. | class | APX only |
| ValetTicket | Valet ticket | The custody record for one valeted vehicle: drop-off (with condition evidence), where it is parked and where the keys are, the retrieval request and its ETA, staging, and handback — with the immutable lifecycle audit. The APDS Session remains the stay and the money; this record is what the attendant board, the customer's phone, and a damage claim look at. | class | Proposed: RightTypeEnum (Tier 2); Proposed: ValetTicket (Tier 2); Proposed: ValetStatusEnum (Tier 2); Proposed: HandbackVerificationEnum (Tier 2) |
A.1.15.3 Specializations of the "Valet" package
There are no specializations in the "Valet" package.
A.1.15.4 Associations of the "Valet" package
Table A.45 -- Associations of the "Valet" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| ValetHandbackRequest | conditionReport | Condition report | The vehicle's condition as recorded by an attendant (or a scanning device) at drop-off or handback: free-text notes, per-area damage entries, and access-controlled image links (Part 9 §9.6). The drop-off report is the evidence a damage claim is answered with. | 0..1 | Valet.ConditionReport | |
| ValetParkRequest | space | Space | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | |
| ValetStageRequest | stagingLane | Staging lane | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| ValetTicket | place | Place | The HierarchyElement (the facility or valet stand). | 1..1 | PkCommon.Reference | |
| session | Session | The APDS Session for the stay (opened at drop-off). | 0..1 | PkCommon.Reference | ||
| assignedRight | Assigned right | The APDS AssignedRight (the valet ticket as a right), when the operator issues one. | 0..1 | PkCommon.Reference | ||
| customer.contact | Contact | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| customer.account | Account | The APX Account (Part 13), for members and hotel guests on file. | 0..1 | PkCommon.Reference | ||
| dropOff.lane | Lane | The VehicularAccess or valet stand where custody was taken. | 0..1 | PkCommon.Reference | ||
| dropOff.conditionReport | Condition report | The vehicle's condition as recorded by an attendant (or a scanning device) at drop-off or handback: free-text notes, per-area damage entries, and access-controlled image links (Part 9 §9.6). The drop-off report is the evidence a damage claim is answered with. | 0..1 | Valet.ConditionReport | ||
| storage.space | Space | The APDS Space, when the facility is space-mapped. | 0..1 | PkCommon.Reference | ||
| retrieval.stagingLane | Staging lane | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| handback.conditionReport | Condition report | The vehicle's condition as recorded by an attendant (or a scanning device) at drop-off or handback: free-text notes, per-area damage entries, and access-controlled image links (Part 9 §9.6). The drop-off report is the evidence a damage claim is answered with. | 0..1 | Valet.ConditionReport | ||
| charging.session | Session | The Part 23 ChargingSession the valet opened. | 0..1 | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.15.5 Attributes of the "Valet" package
Table A.46 -- Attributes of the "Valet" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| ConditionReport | notes | Notes | Free-text observations. | 0..1 | String | |
| damage | Damage | Structured damage entries, one per finding. | 0..* | Structure (members below) | ||
| damage.area | Area | Implementer code list — frontBumper, rearBumper, driverDoor, passengerDoor, hood, roof, trunk, wheelFL/FR/RL/RR, windshield, interior… | 1..1 | String | ||
| damage.description | Description | Free-text description. | 0..1 | String | ||
| damage.severity | Severity | How serious the damage finding is. † | 0..1 | ConditionReport.damage.severity (enumeration) | ||
| damage.imageLink | Image link | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| damage.recordedTime | Recorded time | Set by the server on an entry appended after drop-off (POST …/condition, Part 22 §22.2 rule 3); absent on the original entries, which share the report's recordedTime. |
0..1 | PkCommon.DateTime | ||
| damage.recordedBy | Recorded by | Opaque principal that recorded an appended entry. | 0..1 | String | ||
| imageLinks | Image links | Walk-around photos or scan captures, as access-controlled links. | 0..* | PkCommon.Url | ||
| recordedTime | Recorded time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| recordedBy | Recorded by | Opaque principal (attendant id, scanning device id). | 0..1 | String | ||
| customerAcknowledged | Customer acknowledged | Whether the customer acknowledged the report (signature, tap, spoken confirmation). | 0..1 | Boolean | ||
| ValetCancelRequest | reason | Reason | Implementer code list (customerLeft, selfParked, duplicateTicket, refused…). | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValetCancelRetrievalRequest | reason | Reason | Why the action was taken. | 1..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValetHandbackRequest | verificationMethod | Verification method | How the person collecting the vehicle was verified. † | 1..1 | ValetHandbackRequest.verificationMethod (enumeration) | |
| verificationValue | Verification value | What was presented (ticket number, one-time code…); never stored beyond the check. | 0..1 | String | ||
| handedTo | Handed to | A description of the person the vehicle was handed to, as verified. † | 0..1 | String | ||
| mileage | Mileage | Odometer reading. | 0..1 | Integer | ||
| notes | Notes | Free-text notes. | 0..1 | String | ||
| ValetParkRequest | zone | Zone | The zone, row or level where the vehicle was parked, for facilities that are not space-mapped. † | 0..1 | String | |
| keyLocation | Key location | Where the vehicle's keys are kept. † | 0..1 | String | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValetPickupRequest | retrievingBy | Retrieving by | Opaque principal of the runner; absent = the calling principal. | 0..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValetRetrievalRequest | channel | Channel | Where the retrieval request came from (Part 22 §22.3). † | 1..1 | ValetRetrievalRequest.channel (enumeration) | |
| requestedFor | Requested for | Scheduled pickup; absent = as soon as possible. | 0..1 | PkCommon.DateTime | ||
| interaction | Interaction | Opaque interaction id (Part 17 §17.6) when raised through a support channel or bot. | 0..1 | String | ||
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ValetStageRequest | note | Note | Free-text note from the actor. | 0..1 | String | |
| ValetTicket | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| ticketNumber | Ticket number | The number printed on the claim ticket / shown in the app. | 0..1 | String | ||
| vehicle | Vehicle | The vehicle in custody: its plate or other credential read at drop-off, jurisdiction, make, model, colour and description. † | 0..1 | Structure (members below) | ||
| vehicle.credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 0..1 | Right.CredentialTypeEnum | ||
| vehicle.credentialIdentification | Credential identification | The plate (or other credential) read at drop-off. | 0..1 | String | ||
| vehicle.jurisdiction | Jurisdiction | Issuing jurisdiction of the plate (state, province or country). | 0..1 | String | ||
| vehicle.make | Make | Vehicle make. | 0..1 | String | ||
| vehicle.model | Model | Vehicle model. | 0..1 | String | ||
| vehicle.colour | Colour | The colour of the vehicle. † | 0..1 | String | ||
| vehicle.description | Description | Free-text description. | 0..1 | String | ||
| customer | Customer | Who the car belongs to — minimized (Part 9 §9.6); enough to verify at handback and reach them for ETA. | 0..1 | Structure (members below) | ||
| customer.displayName | Display name | The customer's display name, minimized (Part 9 §9.6). † | 0..1 | String | ||
| customer.contactChannel | Contact channel | How to reach the customer about retrieval; the handle is opaque/masked — no telephony in the contract. | 0..1 | Structure (members below) | ||
| customer.contactChannel.type | Type | The kind of channel the customer is reached on about retrieval. † | 0..1 | ValetTicket.customer.contactChannel.type (enumeration) | ||
| customer.contactChannel.handle | Handle | Opaque or masked handle (push token id, masked number). | 0..1 | String | ||
| dropOff | Drop off | When, where and by whom custody was taken, with mileage, fuel level, key tag, items left and the condition report (Part 22 §22.1). † | 1..1 | Structure (members below) | ||
| dropOff.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| dropOff.attendant | Attendant | Opaque principal. | 0..1 | String | ||
| dropOff.mileage | Mileage | Odometer reading. | 0..1 | Integer | ||
| dropOff.fuelLevelPercent | Fuel level percent | The fuel level at drop-off, as a percentage of a full tank. † | 0..1 | Decimal | ||
| dropOff.keyTag | Key tag | The key hook / tag identifier. | 0..1 | String | ||
| dropOff.itemsLeft | Items left | Declared items left in the vehicle. | 0..1 | String | ||
| storage | Storage | Where the vehicle and its keys are. | 0..1 | Structure (members below) | ||
| storage.zone | Zone | Zone/row/level text for facilities that are not space-mapped. | 0..1 | String | ||
| storage.keyLocation | Key location | Where the vehicle's keys are kept. † | 0..1 | String | ||
| storage.parkedTime | Parked time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| storage.parkedBy | Parked by | The attendant who parked the vehicle. † | 0..1 | String | ||
| retrieval | Retrieval | The current (or last) retrieval request. | 0..1 | Structure (members below) | ||
| retrieval.requestedTime | Requested time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| retrieval.requestedFor | Requested for | A scheduled pickup time; absent = as soon as possible. | 0..1 | PkCommon.DateTime | ||
| retrieval.channel | Channel | Where the retrieval request came from (Part 22 §22.3). † | 0..1 | ValetTicket.retrieval.channel (enumeration) | ||
| retrieval.requestedBy | Requested by | Opaque principal (customer handle, attendant, bot id). | 0..1 | String | ||
| retrieval.interaction | Interaction | Opaque interaction id (Part 17 §17.6 convention) linking to the support interaction that raised it, if any. | 0..1 | String | ||
| retrieval.etaMinutes | Eta minutes | Whole minutes from now until promisedTime, never negative — max(0, floor(promisedTime − now)) — recomputed on every read and event (Part 22 §22.3 rule 1). For a scheduled pickup it counts down to requestedFor. |
0..1 | Integer | ||
| retrieval.promisedTime | Promised time | When the car is promised at the staging lane — requestedFor when scheduled, else requestedTime plus the operator's estimate. |
0..1 | PkCommon.DateTime | ||
| retrieval.retrievingBy | Retrieving by | Opaque principal of the runner fetching the car (set by pickup). |
0..1 | String | ||
| retrieval.stagedTime | Staged time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| retrieval.cancelledTime | Cancelled time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| retrieval.cancelReason | Cancel reason | Why the retrieval request was cancelled, such as re-parked (Part 22 §22.1). † |
0..1 | String | ||
| handback | Handback | When and to whom the vehicle was handed back, how the claimant was verified, and the handback condition report (Part 22 §22.4). † | 0..1 | Structure (members below) | read-only | |
| handback.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| handback.handedTo | Handed to | Opaque description of the recipient as verified. | 0..1 | String | ||
| handback.verificationMethod | Verification method | How the person collecting the vehicle was verified. † | 0..1 | ValetTicket.handback.verificationMethod (enumeration) | ||
| handback.attendant | Attendant | The attendant who handed the vehicle back. † | 0..1 | String | ||
| handback.mileage | Mileage | Odometer reading. | 0..1 | Integer | ||
| handback.notes | Notes | Free-text notes. | 0..1 | String | ||
| charging | Charging | Part 23 §23.8 — the guest asked the valet to charge the car. Additive and optional; the charge itself is a Part 23 ChargingSession referenced here once the valet plugs in. | 0..1 | Structure (members below) | ||
| charging.requested | Requested | The customer asked for the vehicle to be charged during the stay. | 0..1 | Boolean | ||
| charging.targetStateOfChargePercent | Target state of charge percent | The state of charge the customer asked the vehicle to be charged to, as a percentage (Part 23 §23.8). † | 0..1 | Decimal | ||
| charging.instructions | Instructions | Free text from the customer (charge port side, adapter in trunk…). | 0..1 | String | ||
| valetStatus | Valet status | The stage of the vehicle in valet custody (Part 22 §22.1). † | 1..1 | ValetTicket.valetStatus (enumeration) | read-only | |
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The valet status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String |
A.1.16 "PlateLists" package
A.1.16.1 Location of "PlateLists" package. The location of the "PlateLists" package is:
-- APX/PlateLists (source: spec/openapi/domains/platelists/schemas.yaml; normative text: APX Part 24)
A.1.16.2 Classes of the "PlateLists" package
Table A.47 -- Classes of the "PlateLists" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| PlateList | Plate list | A list of credentials with a category and per-place behaviour (Part 24). Entries are kept separately (PlateListEntry); the list carries the policy. |
class | Proposed: PlateList (Tier 2) |
| PlateListEntry | Plate list entry | One credential on a list (Part 24 §24.2). The plate value appears only under apx.platelists:read/:manage; a consumer that only screens may hold the apds-ext:apx:credential-digest@1.0 decoration instead (Part 9 §9.6 rule 6). |
class | Proposed: PlateListEntry (Tier 2) |
| PlateListPlaceFlags | Plate list place flags | What the list does at one place (Part 24 §24.1). | class | Proposed: PlateListPlaceFlags (Tier 2) |
A.1.16.3 Specializations of the "PlateLists" package
There are no specializations in the "PlateLists" package.
A.1.16.4 Associations of the "PlateLists" package
Table A.48 -- Associations of the "PlateLists" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| PlateList | owner | Owner | The Organisation that maintains the list (a city, an operator). | 0..1 | PkCommon.Reference | |
| places | Places | Where the list applies, with per-place flags; a list with no places applies nowhere. |
0..* | PlateLists.PlateListPlaceFlags | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| PlateListEntry | list | List | The PlateList this entry belongs to. | 0..1 | PkCommon.Reference | read-only |
| details.amountOwed | Amount owed | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| PlateListPlaceFlags | place | Place | The HierarchyElement subtree the flags apply to. | 1..1 | PkCommon.Reference |
A.1.16.5 Attributes of the "PlateLists" package
Table A.49 -- Attributes of the "PlateLists" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| PlateList | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| name | Name | Name in natural language. | 1..1 | String | ||
| category | Category | definedValue from apx-plate-list-categories (Part 11) — allow, watch, scofflaw, enforcementVehicle — or an implementer category. |
1..1 | String (code list apx-plate-list-categories) | ||
| status | Status | Whether the list applies, is suspended or is retired (Part 24 §24.1). † | 1..1 | PlateList.status (enumeration) | ||
| description | Description | Free-text description. | 0..1 | String | ||
| entryCount | Entry count | The number of entries on the list. † | 0..1 | Integer | read-only | |
| PlateListEntry | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| credential | Credential | The credential on the list: its type, value and issuing jurisdiction (Part 24 §24.2). † | 1..1 | Structure (members below) | ||
| credential.credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 1..1 | Right.CredentialTypeEnum | ||
| credential.credentialIdentification | Credential identification | The plate or credential value. | 1..1 | String | ||
| credential.jurisdiction | Jurisdiction | Issuing jurisdiction of the plate (state, province, country code). | 0..1 | String | ||
| validity | Validity | When the entry is in force; absent bounds are open. | 0..1 | Structure (members below) | ||
| validity.start | Start | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| validity.end | End | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| details | Details | Why the credential is on the list, as the list owner records it. | 0..1 | Structure (members below) | ||
| details.noticeCount | Notice count | The number of unresolved notices the list owner records against the credential. † | 0..1 | Integer | ||
| details.reference | Reference | The owner's case or file reference, opaque. | 0..1 | String | ||
| details.note | Note | Free-text note from the actor. | 0..1 | String | ||
| vehicle | Vehicle | A description that helps an officer confirm the match; never a registry. | 0..1 | Structure (members below) | ||
| vehicle.description | Description | Free-text description. | 0..1 | String | ||
| PlateListPlaceFlags | enforced | Enforced | A match counts for compliance (allow) or enforcement (scofflaw, watch) at this place. |
0..1 | Boolean | |
| alertOnArrival | Alert on arrival | A match raises the Part 7 arrival alert of the list's category. | 0..1 | Boolean | ||
| refuseService | Refuse service | A match refuses service at the lane (the refused-service sign, Part 6 displayMessage). |
0..1 | Boolean |
A.1.17 "Resolution" package
A.1.17.1 Location of "Resolution" package. The location of the "Resolution" package is:
-- APX/Resolution (source: spec/openapi/domains/resolution/schemas.yaml; normative text: APX Part 17)
A.1.17.2 Classes of the "Resolution" package
Table A.50 -- Classes of the "Resolution" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| AllowedAction | Allowed action | One policy decision about one action, evaluated for THIS context, THIS credential, and THIS moment (Part 17 §17.3). The server — never the consuming agent, human or AI — decides permissibility. Approval requirements are policy-dependent, which is why they live here at runtime and not in a registry. | class | APX only |
| ApprovalDecision | Approval decision | The decision on an ApprovalRequest (Part 17 §17.3a), also the body of POST /v1/approvals/{id}/decide. |
class | APX only |
| ApprovalRequest | Approval request | Asking someone with authority to approve an action before it runs (Part 17 §17.3a). An agent whose AllowedAction said requiresApproval creates one, addressed to a role (an escalation role of the place, Part 26 §26.5, or the AllowedAction's approvalRole); the approver decides through POST /v1/approvals/{id}/decide; the resulting Approval evidence on the write cites the request. Every change is published as apx.approvals.changed.v1. |
class | APX only |
| OverrideRecord | Override record | A recent manual override relevant to this context (courtesy exits, gate opens, passback resets…). Summarizes a Part 6 Command. | class | APX only |
| PassbackStatus | Passback status | Anti-passback state overlay for one APDS Credential. | class | APX only |
| PlateCandidate | Plate candidate | One candidate plate read for correction workflows (Part 17 §17.5) — a projection over APDS Observations, imagery as access-controlled links (Part 9 §9.6). | class | APX only |
| ResolutionContext | Resolution context | The aggregated customer-service context (Part 17): everything the server could resolve about one interaction, plus the policy-decided allowed actions. Every section beyond the required core is OPTIONAL — implementations include what they know and omit what they don't (graceful degradation), and MUST NOT include sections the caller's scopes/grants could not read directly. | class | APX only |
| ResolutionIssue | Resolution issue | The machine-classified issue this context describes. code is a definedValue from the apx-issue-types registry (open, per Part 11); display is the human-readable summary shown to agents. |
class | APX only |
| ResolutionResolveRequest | Resolution resolve request | Whatever PARKING-DOMAIN identifiers are currently known — the server resolves every relationship it can (Part 17 §17.2). At least one IDENTIFYING member is required — device, place, lane, session, holder, credential, plate, ticketNumber, reservationCode, guestReference, commsPoint, callerId, dialedNumber, or commsDeviceId; all are optional individually. interactionId, correlationId, channel, and reservationIssuer are metadata and do not count: a body without an identifying member is 400 invalid-request (Part 17 §17.1). Unknown members are ignored (tolerant reader) and never used for resolution. (minProperties: 1 is the only part of this rule the schema states; the full rule is enforced by the server.) |
class | APX only |
| SupportInteraction | Support interaction | One customer-service interaction (human or AI agent), recorded so future resolution contexts can surface "they called twice yesterday". | class | Proposed: SupportInteraction (Tier 3); Proposed: SupportAgentTypeEnum (Tier 3) |
A.1.17.3 Specializations of the "Resolution" package
Table A.51 -- Specializations of the "Resolution" package
| Class name | Parent class name |
|---|---|
| ApprovalRequest | Common.ApxResourceCore |
A.1.17.4 Associations of the "Resolution" package
Table A.52 -- Associations of the "Resolution" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| AllowedAction | target | Target | The Reference the action should be executed against. | 0..1 | PkCommon.Reference | |
| execution.subject | Subject | For type=ui — the entity to open the surface on; defaults to the action's target. |
0..1 | PkCommon.Reference | ||
| ApprovalRequest | place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| target | Target | What the action is to be executed against. | 0..1 | PkCommon.Reference | ||
| decision | Decision | The decision on an ApprovalRequest (Part 17 §17.3a), also the body of POST /v1/approvals/{id}/decide. |
0..1 | Resolution.ApprovalDecision | read-only | |
| OverrideRecord | command | Command | Reference to the full Command (audit trail). | 0..1 | PkCommon.Reference | |
| requestedBy | Requested by | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| PassbackStatus | credential | Credential | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| lastAccess.place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| lastAccess.lane | Lane | The VehicularAccess where the access occurred. | 0..1 | PkCommon.Reference | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| PlateCandidate | detail | Detail | Per-attribute confidences, alternate reads, and passage geometry (Part 13 §13.3a), when the read carried them. | 0..1 | Lpr.LprReadDetail | |
| lane | Lane | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| observation | Observation | The underlying APDS Observation. | 0..1 | PkCommon.Reference | ||
| extensions | Extensions | The underlying Observation's extensions, minus the apds-ext:apx:lpr-read@1.0 block (which is detail) — Part 13 §13.3a. |
0..1 | Common.Extensions | ||
| ResolutionContext | issue | Issue | The machine-classified issue this context describes. code is a definedValue from the apx-issue-types registry (open, per Part 11); display is the human-readable summary shown to agents. |
0..1 | Resolution.ResolutionIssue | |
| place | Place | The facility this interaction is anchored to. | 1..1 | PkCommon.Reference | ||
| lane | Lane | The VehicularAccess (lane) if resolved. | 0..1 | PkCommon.Reference | ||
| laneStatus | Lane status | The live lane inquiry result (Part 6 §6.2). | 0..1 | Control.LaneStatus | ||
| session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| holder | Holder | The RightHolder (parker) if identified. | 0..1 | PkCommon.Reference | ||
| account | Account | A billable parking account (monthly parker, fleet…), anchored on an APDS RightHolder. | 0..1 | Accounts.Account | ||
| assignedRight | Assigned right | The permit/reservation AssignedRight if resolved. | 0..1 | PkCommon.Reference | ||
| reservation | Reservation | Compact view of one past/current reservation, for customer-history lookups. Also the data of apx.reservation.noshow.v1 (Part 14 §14.1 step 6). |
0..1 | Reservations.ReservationSummary | ||
| credential | Credential | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| passback | Passback | Anti-passback state overlay for one APDS Credential. | 0..1 | Resolution.PassbackStatus | ||
| payments | Payments | Recent relevant payments (most recent first). | 0..* | Accounts.PaymentRecord | ||
| devices | Devices | Live status of the lane's devices — surfaces equipment faults before the agent asks the customer to retry. | 0..* | Control.DeviceStatus | ||
| recentOverrides | Recent overrides | A recent manual override relevant to this context (courtesy exits, gate opens, passback resets…). Summarizes a Part 6 Command. | 0..* | Resolution.OverrideRecord | ||
| supportHistory | Support history | Recent SupportInteractions for the same subjects. | 0..* | Resolution.SupportInteraction | ||
| allowedActions | Allowed actions | The policy layer's decisions — see AllowedAction. May be empty. | 0..* | Resolution.AllowedAction | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ResolutionResolveRequest | device | Device | A SupplementalEquipment the interaction is anchored to (only meaningful if inventoried in the Place hierarchy). | 0..1 | PkCommon.Reference | |
| place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| lane | Lane | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| holder | Holder | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| credential | Credential | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| commsPoint | Comms point | The Part 26 CommsPoint the contact came from, when the call platform already knows it. | 0..1 | PkCommon.Reference | ||
| SupportInteraction | place | Place | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 1..1 | PkCommon.Reference | |
| issue | Issue | The machine-classified issue this context describes. code is a definedValue from the apx-issue-types registry (open, per Part 11); display is the human-readable summary shown to agents. |
0..1 | Resolution.ResolutionIssue | ||
| subjects.session | Session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| subjects.holder | Holder | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| subjects.account | Account | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| subjects.credential | Credential | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| subjects.reservation | Reservation | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| actions | Actions | References to actions executed during the interaction (Commands, PaymentLinks, domain mutations). | 0..* | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.17.5 Attributes of the "Resolution" package
Table A.53 -- Attributes of the "Resolution" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| AllowedAction | action | Action | Logical action identifier: the apx-command-types value for control actions, or the effective-spec operationId for domain actions. | 1..1 | String | |
| display | Display | Agent-facing label. | 0..1 | String | ||
| allowed | Allowed | Whether policy permits the action now. † | 1..1 | Boolean | ||
| requiresApproval | Requires approval | When true, the executing request MUST carry approval evidence (Part 17 §17.3). | 0..1 | Boolean | ||
| approvalRole | Approval role | Role that can approve (implementer/operator code list). | 0..1 | String | ||
| execution | Execution | How to execute (RECOMMENDED). Exactly one of command/operationId/ surface per type. ui says the action is done in the vendor's own screen (Part 25): the agent launches surface on subject and the implementation reports what was done as the module's native resource or a UiActionRecord carrying the launch's correlation id. The value set grows additively: a client MUST skip an action whose type it does not recognise rather than fail (Part 17 §17.3). |
0..1 | Structure (members below) | ||
| execution.type | Type | Whether the action runs as a Part 6 control command or as a domain API operation. † | 1..1 | AllowedAction.execution.type (enumeration) | ||
| execution.command | Command | For type=control — the apx-command-types value for POST /v1/commands. | 0..1 | String | ||
| execution.operationId | Operation id | For type=domain — the operationId of the executing operation in the effective OpenAPI description. | 0..1 | String | ||
| execution.surface | Surface | For type=ui — the apx-ui-surfaces value to launch (Part 25 §25.5). | 0..1 | String | ||
| reason | Reason | Why the action is denied or gated. REQUIRED when allowed=false or requiresApproval=true. | 0..1 | Structure (members below) | ||
| reason.code | Code | Machine-readable policy reason code (operator code list). | 1..1 | String | ||
| reason.display | Display | The agent-facing explanation of why the action is denied or gated. † | 0..1 | String | ||
| reason.policy | Policy | Identifier of the matched operator policy (opaque to APX). | 0..1 | String | ||
| ApprovalDecision | outcome | Outcome | Whether the role approved or denied the action. † | 1..1 | ApprovalDecision.outcome (enumeration) | |
| decidedBy | Decided by | The approving principal, in the role the request named. | 1..1 | String | ||
| decidedAt | Decided at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | read-only | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ApprovalRequest | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | read-only |
| version | Version | Server-managed; bodies carry it only for a versioned replace (Part 4 §4.2a). | 0..1 | Integer | read-only | |
| action | Action | The apx-command-types value or effective-spec operationId to be approved (the AllowedAction.action). | 1..1 | String | ||
| requestedBy | Requested by | The agent asking. | 1..1 | String | ||
| agentType | Agent type | Whether a person or an AI agent asked for the approval. † | 0..1 | ApprovalRequest.agentType (enumeration) | ||
| role | Role | The role asked to decide (apx-escalation-roles value or the AllowedAction's approvalRole). | 1..1 | String | ||
| interactionId | Interaction id | The calling application's opaque interaction identifier (Part 17 §17.7). † | 0..1 | String | ||
| correlationId | Correlation id | The interaction's correlation id (Part 17 §17.7). | 1..1 | Uuid | ||
| reason | Reason | Why the agent is asking, in one line. | 0..1 | String | ||
| status | Status | Where the request stands: pending, approved, denied or expired (Part 17 §17.3a). † | 1..1 | ApprovalRequest.status (enumeration) | read-only | |
| expiresAt | Expires at | When a pending request lapses to expired. Settable on create; the server MAY default it by policy. |
0..1 | PkCommon.DateTime | ||
| OverrideRecord | commandType | Command type | definedValue from apx-command-types. | 1..1 | String | |
| occurredAt | Occurred at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| agent | Agent | The human or AI principal who initiated the override, copied from the summarized Command's agent. |
0..1 | String | ||
| agentType | Agent type | Copied from the summarized Command's agentType. |
0..1 | OverrideRecord.agentType (enumeration) | ||
| reason | Reason | The override's recorded reason, copied from the summarized Command's reason. |
0..1 | String | ||
| PassbackStatus | state | State | Whether the credential is in a passback violation. † | 1..1 | PassbackStatus.state (enumeration) | |
| expectedPresence | Expected presence | Where the credential is expected to be, inside or outside the facility. † | 0..1 | PassbackStatus.expectedPresence (enumeration) | ||
| recordedPresence | Recorded presence | Where the anti-passback record places the credential, inside or outside the facility. † | 0..1 | PassbackStatus.recordedPresence (enumeration) | ||
| lastAccess | Last access | The most recent access event for this credential. | 0..1 | Structure (members below) | ||
| lastAccess.direction | Direction | Whether the last access was an entry or an exit. † | 1..1 | PassbackStatus.lastAccess.direction (enumeration) | ||
| lastAccess.occurredAt | Occurred at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| PlateCandidate | plate | Plate | Vehicle license plate text as read or entered. | 1..1 | String | |
| country | Country | Plate issuing country (APDS VehicleAncillaryIdentification.country vocabulary). | 0..1 | String | ||
| stateProvince | State province | Plate issuing state/province (APDS VehicleAncillaryIdentification.stateProvince vocabulary). | 0..1 | String | ||
| confidence | Confidence | Projection of APDS Confidence.overallConfidence (0–1) for the read. | 1..1 | Decimal | ||
| observationDateTime | Observation date time | When the read was captured (aligned with LprRead.observationDateTime; APDS ObservationElement.observationStartTime). | 1..1 | PkCommon.DateTime | ||
| plateImage | Plate image | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| vehicleImage | Vehicle image | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| purgedImagery | Purged imagery | True when imagery for this read existed and was purged under the retention schedule (Part 13 §13.3b); plateImage/vehicleImage are then absent. |
0..1 | Boolean | read-only | |
| ResolutionContext | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Increments each time the context is recomputed. | 1..1 | Integer | read-only | |
| computedAt | Computed at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| status | Status | partial = at least one source has not answered yet; re-read to refresh. | 1..1 | ResolutionContext.status (enumeration) | ||
| pendingSources | Pending sources | Names of sources still resolving when status=partial (implementer-defined identifiers). | 0..* | String | ||
| interactionId | Interaction id | Echo of the caller's opaque interaction identifier. | 0..1 | String | ||
| correlationId | Correlation id | Identifier that links related requests and records. | 0..1 | Uuid | ||
| placeDisplay | Place display | The display name of the facility. † | 0..1 | String | ||
| vehicle | Vehicle | The vehicle as best resolved (usually via LPR). Plate vocabulary follows APDS VehicleAncillaryIdentification (country/stateProvince). | 0..1 | Structure (members below) | ||
| vehicle.plate | Plate | Vehicle license plate text as read or entered. | 0..1 | String | ||
| vehicle.country | Country | The plate's issuing country, as in APDS VehicleAncillaryIdentification. † | 0..1 | String | ||
| vehicle.stateProvince | State province | State or province that issued the plate. | 0..1 | String | ||
| vehicle.confidence | Confidence | Projection of APDS Confidence.overallConfidence (0–1). | 0..1 | Decimal | ||
| vehicle.plateImage | Plate image | Represents a Url for an internet accessible resource. | 0..1 | PkCommon.Url | ||
| holderDisplay | Holder display | Display name only — contact details require the account read (PII minimization). | 0..1 | String | ||
| accessDecision | Access decision | The most recent access decision at the lane. | 0..1 | Structure (members below) | ||
| accessDecision.status | Status | The outcome of the most recent access decision at the lane. † | 0..1 | ResolutionContext.accessDecision.status (enumeration) | ||
| accessDecision.reasonCode | Reason code | Operator code-list value. | 0..1 | String | ||
| accessDecision.reasonDisplay | Reason display | A human-readable explanation of the access decision. † | 0..1 | String | ||
| accessDecision.occurredAt | Occurred at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| recommendedAction | Recommended action | The server's suggested next step (advisory, never binding). MUST be one of allowedActions. | 0..1 | Structure (members below) | ||
| recommendedAction.action | Action | The AllowedAction.action value being recommended. | 1..1 | String | ||
| recommendedAction.reason | Reason | Why the action was taken. | 0..1 | String | ||
| ResolutionIssue | code | Code | definedValue from apx-issue-types. | 1..1 | String | |
| display | Display | The human-readable summary of the issue shown to agents. † | 0..1 | String | ||
| ResolutionResolveRequest | interactionId | Interaction id | OPAQUE identifier of the calling application's customer interaction (a call, chat, SMS session…). APX never interprets it — it only echoes it for correlation (Part 17 §17.7). Not an identifier for resolution. | 0..1 | String | |
| correlationId | Correlation id | Caller-minted correlation id; echoed on the context and reusable on Commands. | 0..1 | Uuid | ||
| channel | Channel | How the interaction arrived, for context/history display (voice | intercom | chat | web | other). | 0..1 | String | ||
| plate | Plate | Vehicle license plate text as read or entered. | 0..1 | String | ||
| ticketNumber | Ticket number | Number printed on, or encoded in, the parking ticket. | 0..1 | String | ||
| reservationCode | Reservation code | A reservation code the customer presented. † | 0..1 | String | ||
| reservationIssuer | Reservation issuer | Who sold the reservation, when the code alone is ambiguous across sellers (Part 17 §17.2, ReservationSummary.issuer). Metadata, not an identifier. | 0..1 | String | ||
| guestReference | Guest reference | A guest without a plate or ticket — a hotel room, a company, a tenant's employee, an event (Part 17 §17.2). The server resolves it through the place's guest arrangements. | 0..1 | Structure (members below) | ||
| guestReference.kind | Kind | What kind of reference the guest gave (Part 17 §17.1). † | 1..1 | ResolutionResolveRequest.guestReference.kind (enumeration) | ||
| guestReference.value | Value | The reference as the guest gave it, such as the room number or the company name. † | 1..1 | String | ||
| callerId | Caller id | E.164. The number the contact came from; matched against CommsPoint.callerId (Part 26 §26.4). A parker's own mobile number resolves to nothing and is not stored. |
0..1 | String | ||
| dialedNumber | Dialed number | E.164. The number the contact called; matched against CommsPoint.phoneNumber. A posted number shared by many lanes resolves to the place only. |
0..1 | String | ||
| commsDeviceId | Comms device id | The call platform's device id; matched against CommsPoint.commsDeviceId. |
0..1 | String | ||
| SupportInteraction | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| channel | Channel | voice | chat | email | sms | other (implementer code list). | 1..1 | String | ||
| agentType | Agent type | Whether a person or an AI agent handled the interaction. † | 1..1 | SupportInteraction.agentType (enumeration) | ||
| agent | Agent | Agent identifier (human or system principal). | 0..1 | String | ||
| startedAt | Started at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| endedAt | Ended at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| summary | Summary | Short outcome summary. NOT a transcript — PII minimization (Part 9 §9.6). | 0..1 | String | ||
| subjects | Subjects | What/who the interaction was about (all optional). | 0..1 | Structure (members below) | ||
| subjects.plate | Plate | Vehicle license plate text as read or entered. | 0..1 | String | ||
| interactionId | Interaction id | The calling application's opaque interaction identifier. | 0..1 | String | ||
| resolution | Resolution | How the interaction ended. | 0..1 | Structure (members below) | ||
| resolution.code | Code | A definedValue of apx-interaction-outcomes (Part 11) or an implementer code (Part 17 §17.5). | 0..1 | String | ||
| resolution.display | Display | A human-readable description of how the interaction ended. † | 0..1 | String | ||
| correlationId | Correlation id | Correlation chain id (Part 17 §17.7). | 0..1 | Uuid |
A.1.18 "UiLaunch" package
A.1.18.1 Location of "UiLaunch" package. The location of the "UiLaunch" package is:
-- APX/UiLaunch (source: spec/openapi/domains/ui/schemas.yaml; normative text: APX Part 25)
A.1.18.2 Classes of the "UiLaunch" package
Table A.54 -- Classes of the "UiLaunch" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| UiActionRecord | Ui action record | What an agent did in a launched screen when the implementation could not express it as the module's own resource or Command (Part 25 §25.4). The native resource is always preferred: a lost ticket issued in the vendor's screen MUST appear as a lostTicket Command carrying the launch's correlationId. Only an action with no APX operation on this implementation is recorded here, with the fields the host asked for in returnFields, and unavailable[] for the ones it could not supply. Published as apx.ui.action.recorded.v1. |
class | APX only |
| UiLaunch | Ui launch | One opening of a surface for one agent (Part 25 §25.3). Created by the handshake (POST /v1/ui/launches) or minted by the implementation when a signed token is presented. url is single-use and expires at expiresAt; the record itself stays readable for audit and carries the actions[] the screen reported. |
class | APX only |
| UiLaunchRequest | Ui launch request | What the host sends to open a surface for one agent (Part 25 §25.2). The same members are the claims of a signed launch token (UiLaunchToken). correlationId ties everything the agent does in the screen back to the host's record; returnFields lists the APX paths the host wants back when the implementation has to answer with a UiActionRecord instead of a native resource. |
class | APX only |
| UiLaunchToken | Ui launch token | INFORMATIVE. The claims of a signed launch token (JWS, ES256 or RS256) in the signedToken launch mode (Part 25 §25.3). aud is the implementation, exp is at most 60 s after iat, jti is unique and single-use. The remaining claims are the UiLaunchRequest members. The token travels by form POST or in the URL fragment, never in the query string, and the implementation checks it against the host's keys registered at onboarding (Part 25 §25.6). |
class | APX only |
| UiSurface | Ui surface | One screen an implementation offers for launch (Part 25 §25.1). Listed in the discovery document's uiSurfaces[], so a host learns which screens exist, how each may be shown, which launch modes it accepts, and which actions it reports back. The surface name is a definedValue of apx-ui-surfaces (<module>.<view>, Part 11); its registry entry names the subject class the surface opens. |
class | APX only |
A.1.18.3 Specializations of the "UiLaunch" package
Table A.55 -- Specializations of the "UiLaunch" package
| Class name | Parent class name |
|---|---|
| UiLaunch | Common.ApxResourceCore |
| UiLaunch | UiLaunch.UiLaunchRequest |
| UiLaunchToken | UiLaunch.UiLaunchRequest |
A.1.18.4 Associations of the "UiLaunch" package
Table A.56 -- Associations of the "UiLaunch" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| UiActionRecord | launch | Launch | The UiLaunch this record belongs to. | 0..1 | PkCommon.Reference | read-only |
| result | Result | The native resource or Command the action produced, when one exists (then fields MAY be omitted). |
0..1 | PkCommon.Reference | ||
| UiLaunch | actions | Actions | Every UiActionRecord reported for this launch, oldest first (Part 25 §25.4). | 0..* | UiLaunch.UiActionRecord | read-only |
| UiLaunchRequest | subject | Subject | The entity the surface opens on (its class per the surface's registry entry). Required unless the surface is general. | 0..1 | PkCommon.Reference | |
| place | Place | The facility the launch concerns; MUST lie inside the caller's grant. | 1..1 | PkCommon.Reference | ||
| lane | Lane | The VehicularAccess, when the launch concerns one lane. | 0..1 | PkCommon.Reference | ||
| UiSurface | places | Places | The HierarchyElement subtrees where the surface is offered. Absent means everywhere the credential is granted. | 0..* | PkCommon.Reference |
A.1.18.5 Attributes of the "UiLaunch" package
Table A.57 -- Attributes of the "UiLaunch" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| UiActionRecord | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | read-only |
| action | Action | The apx-command-types value or effective-spec operationId the action corresponds to, or other when none does (Part 25 §25.4). |
1..1 | String | ||
| outcome | Outcome | Whether the action completed, failed or was not taken (Part 25 §25.4). † | 1..1 | UiActionRecord.outcome (enumeration) | ||
| occurredAt | Occurred at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| agent | Agent | The agent who acted; defaults to the launch's agent. |
0..1 | String | ||
| summary | Summary | One line a host can show in the call record. Carries no personal data beyond what the host already holds. | 1..1 | String | ||
| fields | Fields | The values the host asked for, keyed by the returnFields path. |
0..1 | Map of Any | ||
| unavailable | Unavailable | Requested paths the implementation could not fill, and why. | 0..* | Structure (members below) | ||
| unavailable.field | Field | The return field, as a JSON pointer, that the implementation could not supply. † | 1..1 | String | ||
| unavailable.reason | Reason | Why the action was taken. | 1..1 | UiActionRecord.unavailable.reason (enumeration) | ||
| correlationId | Correlation id | The launch's correlation id, echoed. | 0..1 | Uuid | ||
| UiLaunch | id | Id | Unique identifier of the record (Part 4). | 0..1 | Uuid | read-only |
| version | Version | Server-managed; bodies carry it only for a versioned replace (Part 4 §4.2a). | 0..1 | Integer | read-only | |
| url | Url | The single-use HTTPS address the host opens for the agent. Present only on the create response and the first read within expiresAt; never carries personal data or secrets in its query string (Part 25 §25.6). |
0..1 | Url | read-only | |
| expiresAt | Expires at | When url (or the signed token) stops working. At most 60 s after issue. |
1..1 | PkCommon.DateTime | ||
| status | Status | issued → opened on first use of the url or token (single use) → closed when the screen reports it is done, or expired when expiresAt passes unused. An opened launch not closed within the implementation's limit (RECOMMENDED 1 h) also becomes expired (Part 25 §25.3). |
1..1 | UiLaunch.status (enumeration) | ||
| openedAt | Opened at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| closedAt | Closed at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| UiLaunchRequest | surface | Surface | definedValue from apx-ui-surfaces. | 1..1 | String | |
| agent | Agent | The staff member the screen is opened for; the implementation logs them in as this agent. | 1..1 | String | ||
| agentType | Agent type | Whether a person or an AI agent will use the surface (Part 25 §25.2). † | 1..1 | UiLaunchRequest.agentType (enumeration) | ||
| interactionId | Interaction id | The host's opaque interaction identifier (Part 17 §17.7), echoed on every record the launch produces. | 0..1 | String | ||
| correlationId | Correlation id | Host-minted correlation id, carried by every native resource, Command, or UiActionRecord that results from the screen (Part 25 §25.4). | 1..1 | Uuid | ||
| displayMode | Display mode | How the host will show the surface; must be one the surface lists. † | 1..1 | UiLaunchRequest.displayMode (enumeration) | ||
| returnFields | Return fields | JSON-pointer paths, relative to the module resource the surface's actions produce, that the host wants back in UiActionRecord.fields (/amount, /session/id). A value the implementation cannot supply is listed in unavailable[] with a reason. |
0..* | String | ||
| expiresIn | Expires in | Seconds the launch url stays usable. Never more than 60 (Part 25 §25.6). |
0..1 | Integer | ||
| UiLaunchToken | iss | Iss | The host's issuer identifier, as registered. | 1..1 | String | |
| aud | Aud | The implementation the token is for. | 1..1 | String | ||
| exp | Exp | Expiry, seconds since the epoch; at most iat + 60. |
1..1 | Integer | ||
| iat | Iat | Issued at, seconds since the epoch. | 1..1 | Integer | ||
| jti | Jti | Unique token id; the implementation refuses a replay. | 1..1 | String | ||
| UiSurface | surface | Surface | definedValue from apx-ui-surfaces. | 1..1 | String | |
| subjectClass | Subject class | The APDS or APX class a launch of this surface opens (VehicularAccess, Session, Violation…). Absent for a general surface such as place.console or module.home. |
0..1 | String | ||
| displayModes | Display modes | How the host may show the surface. embed needs the host's origin registered with the implementation (Part 25 §25.6); popup is the fallback every surface MUST support. |
1..* | UiSurface.displayModes (enumeration) | ||
| launchModes | Launch modes | handshake — the host calls POST /v1/ui/launches and opens the returned single-use url. signedToken — the host signs a UiLaunchToken and sends it to launchUrl (Part 25 §25.3). |
1..* | UiSurface.launchModes (enumeration) | ||
| launchUrl | Launch url | Where a signed launch token is sent (signedToken mode only). HTTPS only. | 0..1 | Url | ||
| actions | Actions | What the surface can report back (Part 25 §25.4): apx-command-types values and effective-spec operationIds. A host uses it to decide which returnFields to ask for. |
0..* | String |
A.1.19 "Charging" package
A.1.19.1 Location of "Charging" package. The location of the "Charging" package is:
-- APX/Charging (source: spec/openapi/domains/charging/schemas.yaml; normative text: APX Part 23)
A.1.19.2 Classes of the "Charging" package
Table A.58 -- Classes of the "Charging" package
| Class name | Designation | Definition | Kind | APDS status |
|---|---|---|---|---|
| ChargingBayPresence | Charging bay presence | Part 23 — what the bay in front of a charging point physically contains, as observed by an overhead camera, a ground sensor, the charger's own connector state, or an attendant — fused by the server (Part 23 §23.3). Distinguishes the cases the charger alone cannot: a vehicle parked in the bay but not plugged in (an ICE vehicle, or an EV not charging), and a bay blocked by something that is not a vehicle. Also the request body a camera analytics system POSTs to …/points/{id}/bay. |
class | Proposed: ChargingBayPresence (Tier 3); Proposed: BayPresenceEnum (Tier 3); Proposed: BayPresenceSourceEnum (Tier 3) |
| ChargingEvent | Charging event | Part 23 — one physical-timeline event the charging-network bridge reports for a session — the APX counterpart of an OCPP 2.0.1 TransactionEvent. The server applies the lifecycle transition (Part 23 §23.2) and appends statusHistory. meterValue events update energy without a state change. Idempotent by Idempotency-Key (bridges retry). |
class | APX only |
| ChargingPaymentAttachment | Charging payment attachment | Part 23 — request body attaching the settling payment to an unplugged directPayment session, or recording the network's charge detail record for a chargingNetwork one. |
class | APX only |
| ChargingPointStatus | Charging point status | Part 23 — live state overlay keyed by Reference to an APDS ElectricChargingEquipment — the dynamic counterpart of the static ElectricChargingPoint (APDS refillPointIndex exists precisely "to link static and dynamic publications"). Never duplicates the static descriptive fields (connector types, power ratings live in APDS). Carries availability per point and per connector, the current session, a reservation, and what the bay camera sees. Same pattern as Part 6 DeviceStatus. Also the request body the charging-network bridge PUTs to …/points/{id}/status. |
class | Proposed: ChargingPointStatus (Tier 3); Proposed: ConnectorStatus (Tier 3) |
| ChargingSession | Charging session | Part 23 — one charge of one vehicle at one charging point, as the parking system sees it: who was authorized and how, the timeline from plug-in to unplug, energy delivered, the idle period after charging completed, cost, and how it settles — while the APDS Session remains the parking stay and is only referenced. The charging network's own identifiers (OCPP transaction, OCPI session/CDR) ride along opaquely so the two records can be reconciled without APX redefining either protocol. | class | Proposed: ChargingSession (Tier 3); Proposed: ChargingCost (Tier 3); Proposed: ChargingIdleTerms (Tier 3); Proposed: ChargingSessionStatusEnum (Tier 3); Proposed: ChargingStopReasonEnum (Tier 3); Proposed: ChargingSettlementModeEnum (Tier 3) |
A.1.19.3 Specializations of the "Charging" package
There are no specializations in the "Charging" package.
A.1.19.4 Associations of the "Charging" package
Table A.59 -- Associations of the "Charging" package
| Class name | Association end | Designation | Definition | Multiplicity | Target | Notes |
|---|---|---|---|---|---|---|
| ChargingBayPresence | observation | Observation | The APDS Observation carrying the camera/sensor evidence (Part 13 §13.3 conventions). | 0..1 | PkCommon.Reference | |
| ChargingPaymentAttachment | payment | Payment | The settling APDS Payment / APX PaymentRecord. | 0..1 | PkCommon.Reference | |
| ChargingPointStatus | chargingPoint | Charging point | The APDS ElectricChargingEquipment (HierarchyElement). | 1..1 | PkCommon.Reference | |
| place | Place | The containing Place (event binding and place filters). | 0..1 | PkCommon.Reference | ||
| space | Space | The APDS Space (bay) this point serves, when the facility is space-mapped. | 0..1 | PkCommon.Reference | ||
| connectors.currentSession | Current session | Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered. | 0..1 | PkCommon.Reference | ||
| currentSession | Current session | The ChargingSession in progress at this point, if any. | 0..1 | PkCommon.Reference | ||
| reservedFor | Reserved for | The APDS AssignedRight (Part 14 reservation) holding this point, if any. | 0..1 | PkCommon.Reference | ||
| bay | Bay | Part 23 — what the bay in front of a charging point physically contains, as observed by an overhead camera, a ground sensor, the charger's own connector state, or an attendant — fused by the server (Part 23 §23.3). Distinguishes the cases the charger alone cannot: a vehicle parked in the bay but not plugged in (an ICE vehicle, or an EV not charging), and a bay blocked by something that is not a vehicle. Also the request body a camera analytics system POSTs to …/points/{id}/bay. |
0..1 | Charging.ChargingBayPresence | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions | ||
| ChargingSession | place | Place | The Place (facility) — event binding and grant check. | 1..1 | PkCommon.Reference | |
| chargingPoint | Charging point | The APDS ElectricChargingEquipment. | 1..1 | PkCommon.Reference | ||
| space | Space | The APDS Space (bay), when space-mapped. | 0..1 | PkCommon.Reference | ||
| parkingSession | Parking session | The APDS Session for the parking stay this charge happened inside. REQUIRED when settlement.mode is parkingSession. |
0..1 | PkCommon.Reference | ||
| assignedRight | Assigned right | The APDS AssignedRight used — a charging reservation (Part 14) or the permit that entitles charging. | 0..1 | PkCommon.Reference | ||
| valetTicket | Valet ticket | The Part 22 ValetTicket when the valet plugged the car in. | 0..1 | PkCommon.Reference | ||
| authorization.credential | Credential | The Part 21 CredentialRecord (or APDS CredentialAssigned) presented. | 0..1 | PkCommon.Reference | ||
| authorization.account | Account | The Part 13 Account charged, when settlement is on account. | 0..1 | PkCommon.Reference | ||
| idlePolicy.idleRate | Idle rate | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| cost.energy | Energy | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| cost.time | Time | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| cost.idle | Idle | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| cost.fees | Fees | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| cost.total | Total | A class supporting the definition of a unit of currency in a defined currency. | 0..1 | Rates.AmountInCurrency | ||
| settlement.payment | Payment | The settling APDS Payment / APX PaymentRecord (directPayment). |
0..1 | PkCommon.Reference | ||
| network.operator | Operator | The charge point operator — a Reference to the operator's contact/organisation record, as Part 20 references a merchant. | 0..1 | PkCommon.Reference | ||
| recordInfo | Record info | Provenance metadata for an APX resource, aligned to the APDS Information Model's RecordType (creationTime/creator/lastUpdate). All timestamps are RFC 3339 (APDS DateTime). | 0..1 | Common.RecordInfo | ||
| extensions | Extensions | Implementer extensions, keyed by a namespaced name (Part 10). | 0..1 | Common.Extensions |
A.1.19.5 Attributes of the "Charging" package
Table A.60 -- Attributes of the "Charging" package
| Class name | Attribute name | Designation | Definition | Multiplicity | Type | Notes |
|---|---|---|---|---|---|---|
| ChargingBayPresence | presence | Presence | empty — nothing in the bay; vehiclePluggedIn — a vehicle is present and the charger reports a connected cable; vehicleNotPluggedIn — a vehicle is present and no cable is connected (ICE-ing, or an EV not charging); blocked — the bay is obstructed by something other than a parked vehicle (cones, debris, a vehicle straddling); unknown. |
1..1 | ChargingBayPresence.presence (enumeration) | |
| source | Source | The evidence source this presence state was derived from (the strongest one, when fused). | 0..1 | ChargingBayPresence.source (enumeration) | ||
| observedTime | Observed time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| sinceTime | Since time | When the current presence state began — the dwell clock for not-plugged-in and idle handling. | 0..1 | PkCommon.DateTime | ||
| vehicle | Vehicle | The vehicle seen in the bay, minimized (Part 9 §9.6). Omitted on the customer scope. | 0..1 | Structure (members below) | ||
| vehicle.credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 0..1 | Right.CredentialTypeEnum | ||
| vehicle.credentialIdentification | Credential identification | The plate read, when the camera has LPR. | 0..1 | String | ||
| vehicle.jurisdiction | Jurisdiction | Issuing jurisdiction of the plate (state, province or country). | 0..1 | String | ||
| vehicle.evCapable | Ev capable | Whether the vehicle appears able to charge (make/model or badge recognition) — false is the ICE-in-EV-bay signal; null when unknown. |
0..1 | Boolean | nullable | |
| confidence | Confidence | The analytics system's confidence in presence. |
0..1 | Decimal | ||
| imageLink | Image link | Access-controlled evidence image (Part 9 §9.6), never inline. | 0..1 | PkCommon.Url | ||
| detail | Detail | Further detail, in free text. | 0..1 | String | ||
| ChargingEvent | eventType | Event type | The kind of physical-timeline event reported (Part 23 §23.2). † | 1..1 | ChargingEvent.eventType (enumeration) | |
| time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| connectorIndex | Connector index | The 1-based position in the point's static APDS connectors[] of the connector the event concerns. † |
0..1 | Integer | ||
| meterWh | Meter wh | Cumulative meter reading at time. |
0..1 | Decimal | ||
| powerKw | Power kw | The power being delivered at the time of the event, in kilowatts. † | 0..1 | Decimal | ||
| stateOfChargePercent | State of charge percent | The vehicle's state of charge at the time of the event, as a percentage, when the vehicle reports it. † | 0..1 | Decimal | ||
| suspendedBy | Suspended by | With suspended. |
0..1 | ChargingEvent.suspendedBy (enumeration) | ||
| stopReason | Stop reason | With chargingEnded. |
0..1 | ChargingEvent.stopReason (enumeration) | ||
| faultCode | Fault code | With fault — the charger's error code, opaque. |
0..1 | String | ||
| externalEventId | External event id | The bridge's own id for this event (OCPP seqNo, message id) for reconciliation. | 0..1 | String | ||
| detail | Detail | Further detail, in free text. | 0..1 | String | ||
| ChargingPaymentAttachment | externalReference | External reference | The charging network's CDR id. | 0..1 | String | |
| note | Note | Free-text note from the actor. | 0..1 | String | ||
| ChargingPointStatus | refillPointIndex | Refill point index | The APDS RefillPoint index of the static publication this status describes. | 0..1 | Integer | |
| evseId | Evse id | The EVSE identifier as the charging network knows it (ISO 15118 / eMI3 form) — opaque bridge to OCPP/OCPI. | 0..1 | String | ||
| availability | Availability | Point-level availability (the busiest connector wins): available; occupied — a cable is connected but no energy is flowing (plugged in, suspended, complete, or idle); charging; reserved (Part 14 AssignedRight in force); blocked — the bay is occupied or obstructed without a connected cable (from bay.presence); inoperative (planned: maintenance, closed hours); outOfOrder (fault); unknown. Aligned with the OCPI EVSE status vocabulary. |
1..1 | ChargingPointStatus.availability (enumeration) | ||
| connectors | Connectors | Per-connector availability; connectorIndex is the 1-based position in the static APDS connectors[]. |
0..* | Structure (members below) | ||
| connectors.connectorIndex | Connector index | The 1-based position of the connector in the static APDS connectors[] (Part 23 §23.1). † |
1..1 | Integer | ||
| connectors.connectorType | Connector type | Echo of the static APDS connector type, for consumers that do not hold the hierarchy. | 0..1 | EnergyInfrastructure.ConnectorTypeEnum | ||
| connectors.availability | Availability | The availability of the connector (Part 23 §23.1). † | 1..1 | ChargingPointStatus.connectors.availability (enumeration) | ||
| connectors.currentPowerKw | Current power kw | The power currently delivered through the connector, in kilowatts. † | 0..1 | Decimal | ||
| lastCommunication | Last communication | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| stateChangedTime | State changed time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| ChargingSession | id | Id | Unique identifier of the record (Part 4). | 1..1 | Uuid | read-only |
| version | Version | Version number of the record; increases by one on each change (Part 4). | 1..1 | Integer | read-only | |
| connectorIndex | Connector index | 1-based position in the point's static APDS connectors[]. |
0..1 | Integer | ||
| evseId | Evse id | Opaque EVSE identifier (ISO 15118 / eMI3 form). | 0..1 | String | ||
| vehicle | Vehicle | Minimized (Part 9 §9.6); plate values only under apx.charging:read/:manage. |
0..1 | Structure (members below) | ||
| vehicle.credentialType | Credential type | * barcode : barcode or QR digital print pattern, held on any physical media. * bluetooth : specific bluetooth or BLE identification chip used to associate a BLE receiver to a specific user. Used for both one time and permit uses. * eticket : digital equivalent of a paper ticket, often presentable via smartphone or similar device for control. * hangtag : visible, often removable, credential indicator, with visible markings * licensePlate : fixed plate, in a defined format, used to identify a specific vehicle- Normally a permanent fixture. * permit : issued credential, often in the form of an adhesive label, often placed on the windscreen, credential indicator, with visible markings * qrCode : quick Reference (QR) code * rfid : specific RF identification associated to an RFID-related account. Used for permit uses. * ticket : typically issued paper with printed details, often with magnetic strips; typically single use disposable. * electronicID : an identifier transmitted by electronic means * ticketcoupon : a visible printed or written paper-based ticket or coupon carrying an identifiable credential. * vehicleplate : a fixed identifier (registration plate) visible and fixed to a vehicle. | 0..1 | Right.CredentialTypeEnum | ||
| vehicle.credentialIdentification | Credential identification | The vehicle's plate or other credential value, returned only under apx.charging:read or :manage (Part 9 §9.6). † |
0..1 | String | ||
| vehicle.jurisdiction | Jurisdiction | Issuing jurisdiction of the plate (state, province or country). | 0..1 | String | ||
| vehicle.make | Make | Vehicle make. | 0..1 | String | ||
| vehicle.model | Model | Vehicle model. | 0..1 | String | ||
| authorization | Authorization | How the charge was authorized and who is on the hook for it. | 0..1 | Structure (members below) | ||
| authorization.method | Method | The APDS authentication/identification method (rfid, apps, overTheAir for ISO 15118 Plug & Charge, creditCard, unlimitedAccess for free-vend inside a controlled garage…). |
0..1 | EnergyInfrastructure.AuthenticationAndIdentificationEnum | ||
| authorization.methodDetail | Method detail | Free text for methods the APDS list does not name (e.g. plate linked by LPR at entry). | 0..1 | String | ||
| authorization.contractId | Contract id | The e-mobility contract id (EMAID) or roaming token, masked/opaque — never a raw payment credential. | 0..1 | String | ||
| authorization.authorizedTime | Authorized time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| authorization.authorizedBy | Authorized by | Opaque principal (bridge id, attendant, customer). | 0..1 | String | ||
| chargingStatus | Charging status | Mapping to OCPP 2.0.1 chargingState: pluggedIn = EVConnected; charging = Charging; suspended = SuspendedEV | SuspendedEVSE (see suspendedBy); complete and idle = EVConnected after energy delivery ended; unplugged = Idle (no EV). |
1..1 | ChargingSession.chargingStatus (enumeration) | read-only | |
| suspendedBy | Suspended by | While suspended: whether the vehicle or the charger paused delivery. |
0..1 | ChargingSession.suspendedBy (enumeration) | ||
| timeline | Timeline | The time of each step of the charge, from authorization to closure. † | 0..1 | Structure (members below) | read-only | |
| timeline.authorizedTime | Authorized time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| timeline.pluggedInTime | Plugged in time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| timeline.chargingStartedTime | Charging started time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| timeline.chargingEndedTime | Charging ended time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| timeline.idleStartedTime | Idle started time | When the grace period elapsed and idle began (server-set). | 0..1 | PkCommon.DateTime | ||
| timeline.unpluggedTime | Unplugged time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| timeline.closedTime | Closed time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| energy | Energy | Energy in kilowatt-hours (APDS DeliveryUnitEnum kWh); meter readings in watt-hours as chargers report them. |
0..1 | Structure (members below) | ||
| energy.meterStartWh | Meter start wh | The charger's cumulative meter reading at the start of the charge, in watt-hours. † | 0..1 | Decimal | ||
| energy.meterStopWh | Meter stop wh | The charger's cumulative meter reading when energy delivery ended, in watt-hours (Part 23 §23.4). † | 0..1 | Decimal | ||
| energy.deliveredKwh | Delivered kwh | Energy delivered so far (final after chargingEndedTime). |
0..1 | Decimal | ||
| energy.currentPowerKw | Current power kw | The power currently being delivered, in kilowatts. † | 0..1 | Decimal | ||
| energy.peakPowerKw | Peak power kw | The highest power delivered during the charge, in kilowatts. † | 0..1 | Decimal | ||
| energy.stateOfChargePercent | State of charge percent | Vehicle state of charge when the vehicle reports it (ISO 15118). | 0..1 | Decimal | ||
| energy.targetStateOfChargePercent | Target state of charge percent | The customer's or valet's requested target; delivery ends when reached where the charger supports it. | 0..1 | Decimal | ||
| energy.lastMeterTime | Last meter time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| stopReason | Stop reason | Why energy delivery ended (OCPP 2.0.1 stopped-reason subset plus targetReached). |
0..1 | ChargingSession.stopReason (enumeration) | ||
| idlePolicy | Idle policy | The idle rule applied to THIS session, snapshotted at authorization so the customer read can say "10 minutes grace, then $0.40/min" and so a later policy change never re-prices a past session. | 0..1 | Structure (members below) | ||
| idlePolicy.graceMinutes | Grace minutes | Minutes after complete before idle begins. |
0..1 | Integer | ||
| idlePolicy.idleRatePer | Idle rate per | The unit of time the idle rate is charged per. † | 0..1 | ChargingSession.idlePolicy.idleRatePer (enumeration) | ||
| idlePolicy.maxIdleMinutes | Max idle minutes | After this much idle the session is eligible for enforcement (Part 19) — apx.charging.idle.started.v1 consumers act on it. |
0..1 | Integer | ||
| idlePolicy.appliesToSettlement | Applies to settlement | Whether idle charges are billed by this operator (true) or by the charging network (false). | 0..1 | Boolean | ||
| cost | Cost | Cost as the parking system knows it; absent components are unknown, not zero. Money is APDS AmountInCurrency. | 0..1 | Structure (members below) | ||
| cost.tariffReference | Tariff reference | Opaque id of the charging network's tariff in force. | 0..1 | String | ||
| cost.pricedAt | Priced at | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| settlement | Settlement | How the cost is collected (Part 23 §23.5). | 0..1 | Structure (members below) | ||
| settlement.mode | Mode | parkingSession — the cost becomes a line on the APDS Session and is paid with the parking (one bill at exit); directPayment — settled by a Part 13 payment referenced in payment; chargingNetwork — billed by the charging network or roaming partner; the parking side records energy and idle but not money. |
0..1 | ChargingSession.settlement.mode (enumeration) | ||
| settlement.settledTime | Settled time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 0..1 | PkCommon.DateTime | ||
| settlement.externalReference | External reference | The charging network's charge detail record id (OCPI CDR) once issued — opaque. | 0..1 | String | ||
| network | Network | The charging network behind the point, and its identifiers for this charge — opaque bridge fields, never interpreted by APX. | 0..1 | Structure (members below) | ||
| network.partyId | Party id | Roaming party id (country code + party id form). | 0..1 | String | ||
| network.ocppTransactionId | Ocpp transaction id | The OCPP transaction identifier the charging network uses for this charge, carried opaquely. † | 0..1 | String | ||
| network.ocpiSessionId | Ocpi session id | The OCPI session identifier the charging network uses for this charge, carried opaquely. † | 0..1 | String | ||
| statusHistory | Status history | Immutable, append-only lifecycle audit (Part 4 §4.2). | 0..* | Structure (members below) | ||
| statusHistory.state | State | The charging status entered at this point in the lifecycle. † | 1..1 | String | ||
| statusHistory.time | Time | ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ. | 1..1 | PkCommon.DateTime | ||
| statusHistory.actor | Actor | The person or system that performed the action. | 1..1 | String | ||
| statusHistory.detail | Detail | Further detail, in free text. | 0..1 | String |
A.2 Data dictionary of datatypes for "APX"
APX uses the APDS 4.1 datatypes where a member carries APDS content. The types below are how this dictionary names the JSON types of APX members.
Table A.61 -- Datatypes
| Datatype | Definition | Nearest APDS 4.1 datatype |
|---|---|---|
| String | A sequence of characters. | String |
| Integer | A whole number. | Integer |
| Decimal | A decimal number. | Decimal / Real |
| Boolean | true or false. | Boolean |
| DateTime | An instant, written per RFC 3339 with a UTC offset. | DateTime |
| Date | A calendar date, written per RFC 3339 (full-date). | Date |
| Uuid | A universally unique identifier per RFC 9562, used as a record id (Part 4). | String (identifier) |
| Url | A URI per RFC 3986. | Url |
| An e-mail address. | ||
| Map of T | A JSON object whose keys are free text and whose values are of type T. | — |
| Structure | An unnamed group of members. Its members are listed under the owning class as owner.member. | — |
| Object | Any JSON object; its content is set by the referenced specification or by an extension. | — |
A.3 Data dictionary of <> for "APX"
A.3.1 The <> "AccessEvent.direction"
Values of direction on AccessEvent.
Defined inline on AccessEvent; the API names it by its owner and attribute.
Table A.62 -- Values contained in the enumeration "AccessEvent.direction"
| Enumerated value name | Designation | Definition |
|---|---|---|
| entry | entry | The attempt was to enter. † |
| exit | exit | The attempt was to leave. † |
A.3.2 The <> "AccessEvent.outcome"
Values of outcome on AccessEvent.
Defined inline on AccessEvent; the API names it by its owner and attribute.
Table A.63 -- Values contained in the enumeration "AccessEvent.outcome"
| Enumerated value name | Designation | Definition |
|---|---|---|
| granted | granted | Access was granted. † |
| denied | denied | Access was refused. † |
A.3.3 The <> "Account.accountStatus"
Values of accountStatus on Account.
Defined inline on Account; the API names it by its owner and attribute.
Table A.64 -- Values contained in the enumeration "Account.accountStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| enabled | enabled | The account may be used. † |
| disabled | disabled | The account may not be used. † |
A.3.4 The <> "Alert.severity"
Values of severity on Alert.
Defined inline on Alert; the API names it by its owner and attribute.
Table A.65 -- Values contained in the enumeration "Alert.severity"
| Enumerated value name | Designation | Definition |
|---|---|---|
| info | info | For information; no action is expected. † |
| warning | warning | A condition that may need action if it continues. † |
| minor | minor | A condition that needs action but does not affect service. † |
| major | major | A condition that affects service and needs prompt action. † |
| critical | critical | A condition that stops service or affects safety and needs immediate action. † |
A.3.5 The <> "Alert.status"
Lifecycle: raised → acknowledged → resolved | expired.
Defined inline on Alert; the API names it by its owner and attribute.
Table A.66 -- Values contained in the enumeration "Alert.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| raised | raised | The condition has been reported and no one has yet acknowledged it. † |
| acknowledged | acknowledged | Someone has taken responsibility for the condition. † |
| resolved | resolved | The condition has been dealt with; this is final (Part 7 §7.3). † |
| expired | expired | The alert lapsed at its expiry time without being resolved; this is final (Part 7 §7.3). † |
A.3.6 The <> "AllowedAction.execution.type"
Values of execution.type on AllowedAction.
Defined inline on AllowedAction; the API names it by its owner and attribute.
Table A.67 -- Values contained in the enumeration "AllowedAction.execution.type"
| Enumerated value name | Designation | Definition |
|---|---|---|
| control | control | The action is executed as a Part 6 control command, named in command. † |
| domain | domain | The action is executed as a domain API operation, named in operationId. † |
| ui | ui | Execute by opening the named vendor surface for the agent (Part 25 §25.5); surface is required, subject optional. † |
A.3.7 The <> "ApprovalDecision.outcome"
Values of outcome on ApprovalDecision.
Defined inline on ApprovalDecision; the API names it by its owner and attribute.
Table A.68 -- Values contained in the enumeration "ApprovalDecision.outcome"
| Enumerated value name | Designation | Definition |
|---|---|---|
| approved | approved | The action may proceed; the decision is the approval evidence. † |
| denied | denied | The action may not proceed. † |
A.3.8 The <> "ApprovalRequest.agentType"
Values of agentType on ApprovalRequest.
Defined inline on ApprovalRequest; the API names it by its owner and attribute.
Table A.69 -- Values contained in the enumeration "ApprovalRequest.agentType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| human | human | A person asked for the approval. † |
| ai | ai | An AI agent asked for the approval. † |
A.3.9 The <> "ApprovalRequest.status"
Values of status on ApprovalRequest.
Defined inline on ApprovalRequest; the API names it by its owner and attribute.
Table A.70 -- Values contained in the enumeration "ApprovalRequest.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| pending | pending | Waiting for the named role to decide (Part 17 §17.3a). † |
| approved | approved | The role approved the action; the decision carries who and when. † |
| denied | denied | The role refused the action; this is final. † |
| expired | expired | No decision arrived before expiresAt; the request can no longer be decided. † |
A.3.10 The <> "ApxEventSubscription.status"
active delivers; paused holds matching events for up to 24 hours and delivers them in order on resume (Part 8 §8.1); failed is server-assigned when the retry schedule is exhausted (a client setting it is 400 invalid-request). PATCH status: active to resume a paused or failed subscription.
Defined inline on ApxEventSubscription; the API names it by its owner and attribute.
Table A.71 -- Values contained in the enumeration "ApxEventSubscription.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| active | active | The subscription delivers matching events. † |
| paused | paused | The client has paused delivery; matching events are held for up to 24 hours and delivered in order on resume (Part 8 §8.1). † |
| failed | failed | The retry schedule was exhausted; the server set this state and delivery stops until the client resumes the subscription (Part 8 §8.1). † |
A.3.11 The <> "ApxEventSubscription.transport"
Values of transport on ApxEventSubscription.
Defined inline on ApxEventSubscription; the API names it by its owner and attribute.
Table A.72 -- Values contained in the enumeration "ApxEventSubscription.transport"
| Enumerated value name | Designation | Definition |
|---|---|---|
| webhook | webhook | Events are delivered by HTTP POST to the subscription's endpoint (Part 8). † |
| sse | sse | Events are read from the subscription's server-sent events stream (Part 8 §8.4). † |
A.3.12 The <> "ApxEventSubscriptionPatch.status"
active or paused — the client-settable states. failed is server-assigned; a PATCH setting it is 400 invalid-request.
Defined inline on ApxEventSubscriptionPatch; the API names it by its owner and attribute.
Table A.73 -- Values contained in the enumeration "ApxEventSubscriptionPatch.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| active | active | Resumes delivery of a paused or failed subscription (Part 8 §8.1). † |
| paused | paused | the client-settable states |
| failed | failed | Server-assigned when the retry schedule is exhausted; a PATCH setting it is refused (Part 8 §8.1). † |
A.3.13 The <> "ApxEventSubscriptionPatch.transport"
Values of transport on ApxEventSubscriptionPatch.
Defined inline on ApxEventSubscriptionPatch; the API names it by its owner and attribute.
Table A.74 -- Values contained in the enumeration "ApxEventSubscriptionPatch.transport"
| Enumerated value name | Designation | Definition |
|---|---|---|
| webhook | webhook | Events are delivered by HTTP POST to the subscription's endpoint (Part 8). † |
| sse | sse | Events are read from the subscription's server-sent events stream (Part 8 §8.4). † |
A.3.14 The <> "CameraDetail.faces"
For lanes, plazas and ramps, relative to the facility (Part 13 §13.3a).
Defined inline on CameraDetail; the API names it by its owner and attribute.
Table A.75 -- Values contained in the enumeration "CameraDetail.faces"
| Enumerated value name | Designation | Definition |
|---|---|---|
| inward | inward | Looking into the facility, the way entering traffic travels (Part 13 §13.3a(5)). † |
| outward | outward | Looking out of the facility, the way exiting traffic travels. † |
A.3.15 The <> "CameraDetail.mounting"
When builtIn, EquipmentDetail builtInto names the host, for example a pay station's driver camera.
Defined inline on CameraDetail; the API names it by its owner and attribute.
Table A.76 -- Values contained in the enumeration "CameraDetail.mounting"
| Enumerated value name | Designation | Definition |
|---|---|---|
| builtIn | built in | Inside another item of equipment, named by the equipment detail's builtInto (Part 26 §26.3). † |
| overhead | overhead | Above the vehicle or the lane, looking down. † |
| pole | pole | On a pole or an island. † |
| wall | wall | On a wall or a column. † |
| ceiling | ceiling | On a ceiling, as in lobbies and stairwells. † |
| other | other | Mounted in another way. † |
A.3.16 The <> "CameraDetail.streams.protocol"
Values of streams.protocol on CameraDetail.
Defined inline on CameraDetail; the API names it by its owner and attribute.
Table A.77 -- Values contained in the enumeration "CameraDetail.streams.protocol"
| Enumerated value name | Designation | Definition |
|---|---|---|
| webrtc | webrtc | WebRTC, for low-latency live viewing in a browser. † |
| hls | hls | HTTP Live Streaming segments. † |
| rtsp | rtsp | RTSP, as an on-site gateway or recorder consumes it. † |
| mjpeg | mjpeg | Motion JPEG over HTTP. † |
| snapshot | snapshot | A single still image on request. † |
A.3.17 The <> "CameraDetail.view"
Values of view on CameraDetail.
Defined inline on CameraDetail; the API names it by its owner and attribute.
Table A.78 -- Values contained in the enumeration "CameraDetail.view"
| Enumerated value name | Designation | Definition |
|---|---|---|
| plate | plate | Reads licence plates. † |
| vehicle | vehicle | An overview of the vehicle in the lane. † |
| driver | driver | The driver's face at a pay station or lane device. † |
| equipmentInteraction | equipment interaction | Hands, ticket and card at the machine. † |
| pedestrians | pedestrians | People at a door, in a lobby or on a stairwell. † |
| areaOverview | area overview | General surveillance of a ramp, a level or the perimeter. † |
| other | other | Another view. † |
A.3.18 The <> "CameraView.kind"
Values of kind on CameraView.
Defined inline on CameraView; the API names it by its owner and attribute.
Table A.79 -- Values contained in the enumeration "CameraView.kind"
| Enumerated value name | Designation | Definition |
|---|---|---|
| live | live | The link plays a live view. † |
| snapshot | snapshot | The link returns a single still. † |
| playback | playback | The link plays the recorded range asked for. † |
A.3.19 The <> "CameraView.protocol"
What the link serves (snapshot is an image).
Defined inline on CameraView; the API names it by its owner and attribute.
Table A.80 -- Values contained in the enumeration "CameraView.protocol"
| Enumerated value name | Designation | Definition |
|---|---|---|
| webrtc | webrtc | The link is a WebRTC session. † |
| hls | hls | The link is an HLS playlist. † |
| rtsp | rtsp | The link is an RTSP URL served by a gateway. † |
| mjpeg | mjpeg | The link is a Motion JPEG stream. † |
| snapshot | snapshot | The link returns an image. † |
A.3.20 The <> "CameraViewRequest.agentType"
Values of agentType on CameraViewRequest.
Defined inline on CameraViewRequest; the API names it by its owner and attribute.
Table A.81 -- Values contained in the enumeration "CameraViewRequest.agentType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| human | human | A person will view the camera. † |
| ai | ai | An AI agent will view the camera. † |
A.3.21 The <> "CameraViewRequest.kind"
Values of kind on CameraViewRequest.
Defined inline on CameraViewRequest; the API names it by its owner and attribute.
Table A.82 -- Values contained in the enumeration "CameraViewRequest.kind"
| Enumerated value name | Designation | Definition |
|---|---|---|
| live | live | A live view; feature cameraViews (Part 26 §26.3). † |
| snapshot | snapshot | A single still taken now. † |
| playback | playback | Recorded video between from and to; feature cameraPlayback. † |
A.3.22 The <> "ChargingBayPresence.presence"
empty — nothing in the bay; vehiclePluggedIn — a vehicle is present and the charger reports a connected cable; vehicleNotPluggedIn — a vehicle is present and no cable is connected (ICE-ing, or an EV not charging); blocked — the bay is obstructed by something other than a parked vehicle (cones, debris, a vehicle straddling); unknown.
Defined inline on ChargingBayPresence; the API names it by its owner and attribute.
Table A.83 -- Values contained in the enumeration "ChargingBayPresence.presence"
| Enumerated value name | Designation | Definition |
|---|---|---|
| empty | empty | nothing in the bay |
| vehiclePluggedIn | vehicle plugged in | a vehicle is |
| vehicleNotPluggedIn | vehicle not plugged in | a vehicle is present and no cable is |
| blocked | blocked | the bay is |
| unknown | unknown | What the bay contains is not known. † |
A.3.23 The <> "ChargingBayPresence.source"
The evidence source this presence state was derived from (the strongest one, when fused).
Defined inline on ChargingBayPresence; the API names it by its owner and attribute.
Table A.84 -- Values contained in the enumeration "ChargingBayPresence.source"
| Enumerated value name | Designation | Definition |
|---|---|---|
| overheadCamera | overhead camera | A camera viewing the bay. † |
| groundSensor | ground sensor | A sensor in or on the bay surface. † |
| charger | charger | The charger's own connector state. † |
| attendant | attendant | A member of staff on site. † |
| inferred | inferred | Derived from other data without a direct observation of the bay. † |
A.3.24 The <> "ChargingEvent.eventType"
Values of eventType on ChargingEvent.
Defined inline on ChargingEvent; the API names it by its owner and attribute.
Table A.85 -- Values contained in the enumeration "ChargingEvent.eventType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| pluggedIn | plugged in | A vehicle was connected to the charger. † |
| chargingStarted | charging started | Energy began to flow. † |
| meterValue | meter value | A meter reading that updates energy without a change of state (Part 23 §23.2). † |
| suspended | suspended | Energy delivery was paused by the vehicle or the charger. † |
| resumed | resumed | Energy delivery resumed after a suspension. † |
| chargingEnded | charging ended | Energy delivery ended, for the reason given in stopReason. † |
| unplugged | unplugged | The vehicle was disconnected. † |
| fault | fault | The charger reported a fault. † |
| cancelled | cancelled | The authorization was cancelled before a vehicle was plugged in (Part 23 §23.2). † |
A.3.25 The <> "ChargingEvent.stopReason"
With chargingEnded.
Defined inline on ChargingEvent; the API names it by its owner and attribute.
Table A.86 -- Values contained in the enumeration "ChargingEvent.stopReason"
| Enumerated value name | Designation | Definition |
|---|---|---|
| evDisconnected | ev disconnected | The vehicle was disconnected. † |
| evFull | ev full | The vehicle reported a full battery. † |
| targetReached | target reached | The requested target state of charge was reached. † |
| energyLimitReached | energy limit reached | An energy limit set for the charge was reached. † |
| timeLimitReached | time limit reached | A time limit set for the charge was reached. † |
| remote | remote | The charge was stopped remotely by an operator or system. † |
| local | local | The charge was stopped at the charger by the driver or staff. † |
| deauthorized | deauthorized | The authorization was withdrawn. † |
| emergencyStop | emergency stop | An emergency stop was used. † |
| powerLoss | power loss | Power to the charger was lost. † |
| other | other | Some other reason. † |
A.3.26 The <> "ChargingEvent.suspendedBy"
With suspended.
Defined inline on ChargingEvent; the API names it by its owner and attribute.
Table A.87 -- Values contained in the enumeration "ChargingEvent.suspendedBy"
| Enumerated value name | Designation | Definition |
|---|---|---|
| ev | ev | The vehicle paused energy delivery. † |
| evse | evse | The charger paused energy delivery. † |
A.3.27 The <> "ChargingPointStatus.availability"
Point-level availability (the busiest connector wins): available; occupied — a cable is connected but no energy is flowing (plugged in, suspended, complete, or idle); charging; reserved (Part 14 AssignedRight in force); blocked — the bay is occupied or obstructed without a connected cable (from bay.presence); inoperative (planned: maintenance, closed hours); outOfOrder (fault); unknown. Aligned with the OCPI EVSE status vocabulary.
Defined inline on ChargingPointStatus; the API names it by its owner and attribute.
Table A.88 -- Values contained in the enumeration "ChargingPointStatus.availability"
| Enumerated value name | Designation | Definition |
|---|---|---|
| available | available | The point is free for a vehicle to charge. † |
| occupied | occupied | a cable is connected but no energy is flowing |
| charging | charging | Energy is flowing on the point (Part 23 §23.1). † |
| reserved | reserved | Part 14 AssignedRight in force |
| blocked | blocked | the bay is occupied |
| inoperative | inoperative | planned: maintenance, closed hours |
| outOfOrder | out of order | fault |
| unknown | unknown | The point's state is not known. † |
A.3.28 The <> "ChargingPointStatus.connectors.availability"
Values of connectors.availability on ChargingPointStatus.
Defined inline on ChargingPointStatus; the API names it by its owner and attribute.
Table A.89 -- Values contained in the enumeration "ChargingPointStatus.connectors.availability"
| Enumerated value name | Designation | Definition |
|---|---|---|
| available | available | The connector is free for a vehicle to charge. † |
| occupied | occupied | A cable is connected but no energy is flowing (Part 23 §23.1). † |
| charging | charging | Energy is flowing through the connector. † |
| reserved | reserved | The connector is held for an AssignedRight in force (Part 14). † |
| blocked | blocked | The bay holds a vehicle that is not plugged in, or is obstructed (Part 23 §23.3). † |
| inoperative | inoperative | The connector is out of use for a planned reason, such as maintenance or closed hours. † |
| outOfOrder | out of order | The connector is out of use because of a fault. † |
| unknown | unknown | The connector's state is not known. † |
A.3.29 The <> "ChargingSession.chargingStatus"
Mapping to OCPP 2.0.1 chargingState: pluggedIn = EVConnected; charging = Charging; suspended = SuspendedEV | SuspendedEVSE (see suspendedBy); complete and idle = EVConnected after energy delivery ended; unplugged = Idle (no EV).
Defined inline on ChargingSession; the API names it by its owner and attribute.
Table A.90 -- Values contained in the enumeration "ChargingSession.chargingStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| authorized | authorized | The charge has been authorized but no vehicle is connected yet. † |
| pluggedIn | plugged in | EVConnected |
| charging | charging | Charging |
| suspended | suspended | SuspendedEV | SuspendedEVSE |
| complete | complete | Energy delivery has ended and the vehicle is still connected, within any grace period. † |
| idle | idle | EVConnected after |
| unplugged | unplugged | Idle (no EV). |
| closed | closed | The charge has been settled and is final (Part 23 §23.2). † |
| cancelled | cancelled | The authorization was never used (Part 23 §23.2). † |
| faulted | faulted | A fault interrupted the charge (Part 23 §23.2). † |
A.3.30 The <> "ChargingSession.idlePolicy.idleRatePer"
Values of idlePolicy.idleRatePer on ChargingSession.
Defined inline on ChargingSession; the API names it by its owner and attribute.
Table A.91 -- Values contained in the enumeration "ChargingSession.idlePolicy.idleRatePer"
| Enumerated value name | Designation | Definition |
|---|---|---|
| minute | minute | The idle rate is charged per started minute (Part 23 §23.5). † |
| hour | hour | The idle rate is charged per started hour (Part 23 §23.5). † |
A.3.31 The <> "ChargingSession.settlement.mode"
parkingSession — the cost becomes a line on the APDS Session and is paid with the parking (one bill at exit); directPayment — settled by a Part 13 payment referenced in payment; chargingNetwork — billed by the charging network or roaming partner; the parking side records energy and idle but not money.
Defined inline on ChargingSession; the API names it by its owner and attribute.
Table A.92 -- Values contained in the enumeration "ChargingSession.settlement.mode"
| Enumerated value name | Designation | Definition |
|---|---|---|
| parkingSession | parking session | the cost becomes a line on the APDS Session |
| directPayment | direct payment | settled by a Part 13 payment referenced in |
| chargingNetwork | charging network | billed by the charging network |
A.3.32 The <> "ChargingSession.stopReason"
Why energy delivery ended (OCPP 2.0.1 stopped-reason subset plus targetReached).
Defined inline on ChargingSession; the API names it by its owner and attribute.
Table A.93 -- Values contained in the enumeration "ChargingSession.stopReason"
| Enumerated value name | Designation | Definition |
|---|---|---|
| evDisconnected | ev disconnected | The vehicle was disconnected. † |
| evFull | ev full | The vehicle reported a full battery. † |
| targetReached | target reached | The requested target state of charge was reached. † |
| energyLimitReached | energy limit reached | An energy limit set for the charge was reached. † |
| timeLimitReached | time limit reached | A time limit set for the charge was reached. † |
| remote | remote | The charge was stopped remotely by an operator or system. † |
| local | local | The charge was stopped at the charger by the driver or staff. † |
| deauthorized | deauthorized | The authorization was withdrawn. † |
| emergencyStop | emergency stop | An emergency stop was used. † |
| powerLoss | power loss | Power to the charger was lost. † |
| other | other | Some other reason. † |
A.3.33 The <> "ChargingSession.suspendedBy"
While suspended: whether the vehicle or the charger paused delivery.
Defined inline on ChargingSession; the API names it by its owner and attribute.
Table A.94 -- Values contained in the enumeration "ChargingSession.suspendedBy"
| Enumerated value name | Designation | Definition |
|---|---|---|
| ev | ev | The vehicle paused energy delivery. † |
| evse | evse | The charger paused energy delivery. † |
A.3.34 The <> "Command.agentType"
Whether agent is a person or an AI agent (mirrors SupportInteraction.agentType).
Defined inline on Command; the API names it by its owner and attribute.
Table A.95 -- Values contained in the enumeration "Command.agentType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| human | human | A person initiated the command. † |
| ai | ai | An AI agent initiated the command. † |
A.3.35 The <> "Command.confirmationLevel"
How far success is actually confirmed (Part 6 §6.1): the command was accepted; the device acknowledged it; or the physical outcome was verified (e.g. gate-state sensor). Consumers — AI agents especially — MUST NOT claim a physical outcome ("the gate is open") beyond this level ("the open command was accepted").
Defined inline on Command; the API names it by its owner and attribute.
Table A.96 -- Values contained in the enumeration "Command.confirmationLevel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| accepted | accepted | The command was taken by the server; no device outcome is confirmed. † |
| deviceAcknowledged | device acknowledged | The device acknowledged the command. † |
| physicallyConfirmed | physically confirmed | The physical outcome was verified, for example by a gate-state sensor (Part 6 §6.1). † |
A.3.36 The <> "Command.priority"
Values of priority on Command.
Defined inline on Command; the API names it by its owner and attribute.
Table A.97 -- Values contained in the enumeration "Command.priority"
| Enumerated value name | Designation | Definition |
|---|---|---|
| normal | normal | — |
| high | high | — |
A.3.37 The <> "Command.status"
Values of status on Command.
Defined inline on Command; the API names it by its owner and attribute.
Table A.98 -- Values contained in the enumeration "Command.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| received | received | The server has received the command. † |
| accepted | accepted | The server has accepted the command for dispatch. † |
| rejected | rejected | The server refused the command; it is not dispatched. † |
| dispatched | dispatched | The command has been sent to the target device. † |
| executing | executing | The device is carrying out the command. † |
| succeeded | succeeded | The command completed; how far success is confirmed is given by confirmationLevel (Part 6 §6.1). † |
| failed | failed | The device reported that the command could not be carried out. † |
| expired | expired | The command's expiry time passed before dispatch, so it was never carried out (Part 6 §6.1). † |
| cancelled | cancelled | The command was cancelled before it was dispatched (Part 6 §6.1). † |
A.3.38 The <> "ConditionReport.damage.severity"
Values of damage.severity on ConditionReport.
Defined inline on ConditionReport; the API names it by its owner and attribute.
Table A.99 -- Values contained in the enumeration "ConditionReport.damage.severity"
| Enumerated value name | Designation | Definition |
|---|---|---|
| minor | minor | Cosmetic damage. † |
| moderate | moderate | Damage needing repair. † |
| major | major | Serious damage. † |
A.3.39 The <> "CredentialAccessEvent.direction"
Values of direction on CredentialAccessEvent.
Defined inline on CredentialAccessEvent; the API names it by its owner and attribute.
Table A.100 -- Values contained in the enumeration "CredentialAccessEvent.direction"
| Enumerated value name | Designation | Definition |
|---|---|---|
| entry | entry | The attempt was to enter. † |
| exit | exit | The attempt was to leave. † |
A.3.40 The <> "CredentialAccessEvent.outcome"
Values of outcome on CredentialAccessEvent.
Defined inline on CredentialAccessEvent; the API names it by its owner and attribute.
Table A.101 -- Values contained in the enumeration "CredentialAccessEvent.outcome"
| Enumerated value name | Designation | Definition |
|---|---|---|
| granted | granted | Access was granted. † |
| denied | denied | Access was refused. † |
A.3.41 The <> "CredentialDigest.alg"
Values of alg on CredentialDigest.
Defined inline on CredentialDigest; the API names it by its owner and attribute.
Table A.102 -- Values contained in the enumeration "CredentialDigest.alg"
| Enumerated value name | Designation | Definition |
|---|---|---|
| HS256 | hs256 | HMAC with SHA-256, keyed by the digest key named in keyId (Part 9 §9.6). † |
A.3.42 The <> "CredentialRecord.credentialAssignedType"
APDS CredentialAssignedTypeEnum — what the credential identifies.
Defined inline on CredentialRecord; the API names it by its owner and attribute.
Table A.103 -- Values contained in the enumeration "CredentialRecord.credentialAssignedType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| vehicle | vehicle | The credential identifies a vehicle. † |
| customer | customer | The credential identifies a customer. † |
| other | other | The credential identifies something other than a vehicle or a customer. † |
A.3.43 The <> "CredentialRecord.credentialStatus"
Values of credentialStatus on CredentialRecord.
Defined inline on CredentialRecord; the API names it by its owner and attribute.
Table A.104 -- Values contained in the enumeration "CredentialRecord.credentialStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| issued | issued | The credential has been issued but is not yet active. † |
| active | active | The credential may be used. † |
| suspended | suspended | The credential is temporarily not usable and may be resumed. † |
| lost | lost | The credential has been reported lost or stolen and is not usable; it may still be replaced or revoked (Part 21 §21.1). † |
| revoked | revoked | The credential has been withdrawn permanently. † |
| expired | expired | The credential's validity period has ended. † |
| replaced | replaced | The credential has been succeeded by another credential (Part 21 §21.1). † |
A.3.44 The <> "CredentialRecord.media.depositStatus"
Values of media.depositStatus on CredentialRecord.
Defined inline on CredentialRecord; the API names it by its owner and attribute.
Table A.105 -- Values contained in the enumeration "CredentialRecord.media.depositStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| held | held | The deposit is held by the issuer. † |
| refunded | refunded | The deposit has been returned to the holder. † |
| forfeited | forfeited | The deposit has been kept by the issuer. † |
A.3.45 The <> "CredentialRecord.media.form"
Values of media.form on CredentialRecord.
Defined inline on CredentialRecord; the API names it by its owner and attribute.
Table A.106 -- Values contained in the enumeration "CredentialRecord.media.form"
| Enumerated value name | Designation | Definition |
|---|---|---|
| physicalCard | physical card | A plastic or paper card. † |
| fob | fob | A key fob. † |
| transponder | transponder | A vehicle-mounted transponder or tag. † |
| hangtag | hangtag | A tag displayed in the vehicle. † |
| mobile | mobile | A credential held on a mobile device. † |
| plate | plate | The vehicle's licence plate used as the credential. † |
| ticket | ticket | A ticket issued for the stay. † |
| virtual | virtual | A credential with no physical item, such as an account number. † |
A.3.46 The <> "CredentialReplaceRequest.media.form"
Values of media.form on CredentialReplaceRequest.
Defined inline on CredentialReplaceRequest; the API names it by its owner and attribute.
Table A.107 -- Values contained in the enumeration "CredentialReplaceRequest.media.form"
| Enumerated value name | Designation | Definition |
|---|---|---|
| physicalCard | physical card | A plastic or paper card. † |
| fob | fob | A key fob. † |
| transponder | transponder | A vehicle-mounted transponder or tag. † |
| hangtag | hangtag | A tag displayed in the vehicle. † |
| mobile | mobile | A credential held on a mobile device. † |
| plate | plate | The vehicle's licence plate used as the credential. † |
| ticket | ticket | A ticket issued for the stay. † |
| virtual | virtual | A credential with no physical item, such as an account number. † |
A.3.47 The <> "CredentialReplaceRequest.oldDepositStatus"
What happens to the old record's deposit.
Defined inline on CredentialReplaceRequest; the API names it by its owner and attribute.
Table A.108 -- Values contained in the enumeration "CredentialReplaceRequest.oldDepositStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| held | held | The old item's deposit stays held by the issuer. † |
| refunded | refunded | The old item's deposit is returned to the holder. † |
| forfeited | forfeited | The old item's deposit is kept by the issuer. † |
A.3.48 The <> "DeliveryRecord.status"
Values of status on DeliveryRecord.
Defined inline on DeliveryRecord; the API names it by its owner and attribute.
Table A.109 -- Values contained in the enumeration "DeliveryRecord.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| delivered | delivered | The event was delivered to the receiver. † |
| retrying | retrying | Delivery has not yet succeeded and further attempts are scheduled (Part 8 §8.3). † |
| failed | failed | Every attempt in the retry schedule failed (Part 8 §8.3). † |
A.3.49 The <> "DeviceStatus.consumables.kind"
Values of consumables.kind on DeviceStatus.
Defined inline on DeviceStatus; the API names it by its owner and attribute.
Table A.110 -- Values contained in the enumeration "DeviceStatus.consumables.kind"
| Enumerated value name | Designation | Definition |
|---|---|---|
| tickets | tickets | Blank ticket stock in a dispenser or verifier (Part 6 §6.4). † |
| receiptPaper | receipt paper | Receipt paper in a pay station or terminal. † |
| cash | cash | Notes held for change in a pay station. † |
| coins | coins | Coins held for change in a pay station. † |
A.3.50 The <> "DeviceStatus.consumables.level"
Values of consumables.level on DeviceStatus.
Defined inline on DeviceStatus; the API names it by its owner and attribute.
Table A.111 -- Values contained in the enumeration "DeviceStatus.consumables.level"
| Enumerated value name | Designation | Definition |
|---|---|---|
| ok | ok | Enough of the consumable for normal operation. † |
| low | low | The consumable needs replenishing soon; service continues. † |
| empty | empty | The consumable has run out; the function that needs it has stopped. † |
| unknown | unknown | The device does not report the level. † |
A.3.51 The <> "DiscoveryDocument.replication.authority"
Values of replication.authority on DiscoveryDocument.
Defined inline on DiscoveryDocument; the API names it by its owner and attribute.
Table A.112 -- Values contained in the enumeration "DiscoveryDocument.replication.authority"
| Enumerated value name | Designation | Definition |
|---|---|---|
| site | site | The site implementation is authoritative for the class at the place (Part 18 §18.6). † |
| aggregator | aggregator | The aggregating implementation is authoritative for the class at the place (Part 18 §18.6). † |
A.3.52 The <> "DisplayProof.acknowledgedBy"
Values of acknowledgedBy on DisplayProof.
Defined inline on DisplayProof; the API names it by its owner and attribute.
Table A.113 -- Values contained in the enumeration "DisplayProof.acknowledgedBy"
| Enumerated value name | Designation | Definition |
|---|---|---|
| player | player | — |
| operator | operator | — |
| none | none | — |
A.3.53 The <> "EligibilityResult.basis.status"
Why this basis does or does not entitle the vehicle here, now.
Defined inline on EligibilityResult; the API names it by its owner and attribute.
Table A.114 -- Values contained in the enumeration "EligibilityResult.basis.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| valid | valid | The right or session covers the vehicle at this place now. † |
| expired | expired | The right or session has ended. † |
| notYetValid | not yet valid | The right exists but its validity has not started. † |
| wrongPlace | wrong place | The right is bound to a sibling or a different subtree of the place hierarchy (Part 19 §19.3). † |
| consumed | consumed | The right has already been used by another session. † |
| suspended | suspended | The right is suspended. † |
A.3.54 The <> "EnforcementPolicy.deliveryRules.detectionModes"
Values of deliveryRules.detectionModes on EnforcementPolicy.
Defined inline on EnforcementPolicy; the API names it by its owner and attribute.
Table A.115 -- Values contained in the enumeration "EnforcementPolicy.deliveryRules.detectionModes"
| Enumerated value name | Designation | Definition |
|---|---|---|
| automated | automated | A camera or sensor system found the violation with no person involved. † |
| guided | guided | A system proposed the violation and an officer confirmed it on site. † |
| manual | manual | An officer found the violation directly. † |
A.3.55 The <> "EnforcementPolicy.penaltyCap.onExceed"
refuse → 422 penalty-exceeds-cap; clamp → issue at the cap and record reason: cap in amountHistory.
Defined inline on EnforcementPolicy; the API names it by its owner and attribute.
Table A.116 -- Values contained in the enumeration "EnforcementPolicy.penaltyCap.onExceed"
| Enumerated value name | Designation | Definition |
|---|---|---|
| refuse | refuse | An issue whose amount exceeds the cap is refused (Part 19 §19.10). † |
| clamp | clamp | An issue whose amount exceeds the cap is issued at the cap (Part 19 §19.10). † |
A.3.56 The <> "EnforcementPolicy.policyStatus"
Values of policyStatus on EnforcementPolicy.
Defined inline on EnforcementPolicy; the API names it by its owner and attribute.
Table A.117 -- Values contained in the enumeration "EnforcementPolicy.policyStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| active | active | The policy is in force at its place and subtree within its effective window (Part 19 §19.10). † |
| superseded | superseded | Replaced by a newer policy that now applies. † |
| retired | retired | Withdrawn from use without a replacement. † |
A.3.57 The <> "LaneCameras.cameras.faces"
inward — looking into the facility, the way entering traffic travels (reads the rear plates of entering vehicles); outward — looking out of it, the way exiting traffic travels (reads the rear plates of exiting vehicles).
Defined inline on LaneCameras; the API names it by its owner and attribute.
Table A.118 -- Values contained in the enumeration "LaneCameras.cameras.faces"
| Enumerated value name | Designation | Definition |
|---|---|---|
| inward | inward | looking into the facility, the way entering |
| outward | outward | looking out of it, the way exiting |
A.3.58 The <> "LprRead.laneTravel"
DEPRECATED since 0.12.0, removed at 1.0. APX no longer derives direction; use detail.accessEvent (entry | exit), which the LPR system reports (Part 13 §13.3a(4)). Servers SHOULD return unknown.
Defined inline on LprRead; the API names it by its owner and attribute.
Table A.119 -- Values contained in the enumeration "LprRead.laneTravel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| withLane | with lane | The vehicle travelled the way the lane's configured purpose directs (deprecated since 0.12.0). † |
| againstLane | against lane | The vehicle travelled against the lane's configured purpose, such as entering on an exit lane (deprecated since 0.12.0). † |
| unknown | unknown | The direction of travel relative to the lane is not determined; the value servers return since 0.12.0. † |
A.3.59 The <> "LprReadDetail.accessEvent"
Whether this read was a vehicle entering or leaving the facility, as reported by the LPR system — not the lane's configured purpose (the lane's APDS accessType), and never inferred by the APX server. Absent means unknown. The LPR system MAY revise it through PUT /v1/lpr/reads/{observation}/access-event (Part 13 §13.3a(4)).
Defined inline on LprReadDetail; the API names it by its owner and attribute.
Table A.120 -- Values contained in the enumeration "LprReadDetail.accessEvent"
| Enumerated value name | Designation | Definition |
|---|---|---|
| entry | entry | The LPR system reports the read as a vehicle entering the facility. † |
| exit | exit | The LPR system reports the read as a vehicle leaving the facility. † |
| unknown | unknown | Whether the vehicle was entering or leaving is not reported. † |
A.3.60 The <> "LprReadDetail.movement"
The vehicle's motion relative to the camera: toward it, away from it, or stopped. A camera fact, not a statement about the facility. approaching and receding are deprecated synonyms of toward and away — accepted until 1.0; writers SHOULD send the new values (Part 13 §13.3a(3)).
Defined inline on LprReadDetail; the API names it by its owner and attribute.
Table A.121 -- Values contained in the enumeration "LprReadDetail.movement"
| Enumerated value name | Designation | Definition |
|---|---|---|
| toward | toward | The vehicle moved toward the camera. † |
| away | away | accepted until 1.0; writers SHOULD send the new values |
| stopped | stopped | The vehicle was stationary. † |
| unknown | unknown | The vehicle's motion could not be determined. † |
| approaching | approaching | Deprecated synonym of toward, accepted until 1.0 (Part 13 §13.3a(3)). † |
| receding | receding | Deprecated synonym of away, accepted until 1.0 (Part 13 §13.3a(3)). † |
A.3.61 The <> "LprReadDetail.plateFace"
Which plate of the vehicle was read, for engines that can tell.
Defined inline on LprReadDetail; the API names it by its owner and attribute.
Table A.122 -- Values contained in the enumeration "LprReadDetail.plateFace"
| Enumerated value name | Designation | Definition |
|---|---|---|
| front | front | The front plate was read. † |
| rear | rear | The rear plate was read. † |
| unknown | unknown | The engine cannot tell which plate was read. † |
A.3.62 The <> "LprReadDetail.review.state"
Values of review.state on LprReadDetail.
Defined inline on LprReadDetail; the API names it by its owner and attribute.
Table A.123 -- Values contained in the enumeration "LprReadDetail.review.state"
| Enumerated value name | Designation | Definition |
|---|---|---|
| pending | pending | The read is waiting for a reviewer. † |
| confirmed | confirmed | A reviewer confirmed the engine's values. † |
| corrected | corrected | A reviewer replaced the engine's values with corrected ones. † |
| rejected | rejected | A reviewer rejected the read as unusable for pairing and enforcement. † |
| notRequired | not required | No rule sent the read to review. † |
A.3.63 The <> "MatchCandidate.matchedBy"
How this candidate was found: the lane's LPR read against the entry read (plateRead); a credential presented at the lane (credential); the account registry by plate or phone (account); a checked-in reservation carrying the plate (reservation).
Defined inline on MatchCandidate; the API names it by its owner and attribute.
Table A.124 -- Values contained in the enumeration "MatchCandidate.matchedBy"
| Enumerated value name | Designation | Definition |
|---|---|---|
| plateRead | plate read | The lane's plate read matched the session's entry read. † |
| credential | credential | A credential presented at the lane matched the session. † |
| account | account | The account registry linked the session by plate or phone. † |
| reservation | reservation | A checked-in reservation carrying the plate linked the session. † |
A.3.64 The <> "MatchEvidence.decidedBy"
Whether software or a person made the link. A matchTicket that binds a lane-inquiry candidate SHOULD be recorded as person (Part 5 §5.8 rule 5).
Defined inline on MatchEvidence; the API names it by its owner and attribute.
Table A.125 -- Values contained in the enumeration "MatchEvidence.decidedBy"
| Enumerated value name | Designation | Definition |
|---|---|---|
| system | system | Software made the link. † |
| person | person | Part 5 §5.8 rule 5). |
A.3.65 The <> "MatchEvidence.matchType"
The kind of link: right — an AssignedRight covers the stay; valet — a ValetTicket's stay; violation — a Violation's stay; list — a plate-list entry matched the vehicle (Part 24); exitPairing — an exit read paired to the Session's entry; sweep — the vehicle seen during an inventory or patrol sweep tied to the Session; other — anything else.
Defined inline on MatchEvidence; the API names it by its owner and attribute.
Table A.126 -- Values contained in the enumeration "MatchEvidence.matchType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| right | right | an AssignedRight covers the stay |
| valet | valet | a ValetTicket's stay |
| violation | violation | a Violation's stay |
| list | list | a plate-list entry matched the vehicle (Part 24 |
| exitPairing | exit pairing | an exit read paired to the Session's entry |
| sweep | sweep | the vehicle seen during an inventory or patrol sweep tied |
| other | other | anything else. |
A.3.66 The <> "MatchEvidence.plate.jurisdiction"
Values of plate.jurisdiction on MatchEvidence.
Defined inline on MatchEvidence; the API names it by its owner and attribute.
Table A.127 -- Values contained in the enumeration "MatchEvidence.plate.jurisdiction"
| Enumerated value name | Designation | Definition |
|---|---|---|
| agrees | agrees | The plate's issuing jurisdiction is the same on both sides of the match. † |
| differs | differs | The plate's issuing jurisdiction differs between the two sides of the match. † |
| unknown | unknown | Whether the issuing jurisdiction agrees is not known. † |
A.3.67 The <> "MatchEvidence.plate.method"
exact — the same characters; alias — a plate the right or account lists for the same vehicle; fold — equal after folding look-alike characters (O/0, I/1, B/8); fuzzy — within the implementation's edit-cost threshold; lenient — accepted under a relaxed rule that may excuse a stay but never accuse one; reviewer — a person judged the plates to match where no automatic method did.
Defined inline on MatchEvidence; the API names it by its owner and attribute.
Table A.128 -- Values contained in the enumeration "MatchEvidence.plate.method"
| Enumerated value name | Designation | Definition |
|---|---|---|
| exact | exact | the same characters |
| alias | alias | a plate the right or |
| fold | fold | equal after |
| fuzzy | fuzzy | within |
| lenient | lenient | accepted |
| reviewer | reviewer | a person judged the plates to match where no |
A.3.68 The <> "MatchEvidence.vehicle.level"
unknown — not compared; mismatch — the attributes contradict the match; inconclusive — compared, no signal; weak, good, strong — increasing support.
Defined inline on MatchEvidence; the API names it by its owner and attribute.
Table A.129 -- Values contained in the enumeration "MatchEvidence.vehicle.level"
| Enumerated value name | Designation | Definition |
|---|---|---|
| unknown | unknown | not compared |
| mismatch | mismatch | the attributes contradict |
| inconclusive | inconclusive | compared, no signal |
| weak | weak | The vehicle attributes give weak support to the match. † |
| good | good | The vehicle attributes give good support to the match. † |
| strong | strong | increasing support. |
A.3.69 The <> "OverrideRecord.agentType"
Copied from the summarized Command's agentType.
Defined inline on OverrideRecord; the API names it by its owner and attribute.
Table A.130 -- Values contained in the enumeration "OverrideRecord.agentType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| human | human | A person initiated the summarized command. † |
| ai | ai | An AI agent initiated the summarized command. † |
A.3.70 The <> "PassbackStatus.expectedPresence"
Values of expectedPresence on PassbackStatus.
Defined inline on PassbackStatus; the API names it by its owner and attribute.
Table A.131 -- Values contained in the enumeration "PassbackStatus.expectedPresence"
| Enumerated value name | Designation | Definition |
|---|---|---|
| inside | inside | The credential is expected to be inside the facility, as when presented at an exit lane. † |
| outside | outside | The credential is expected to be outside the facility, as when presented at an entry lane. † |
| unknown | unknown | Where the credential is expected to be is not known. † |
A.3.71 The <> "PassbackStatus.lastAccess.direction"
Values of lastAccess.direction on PassbackStatus.
Defined inline on PassbackStatus; the API names it by its owner and attribute.
Table A.132 -- Values contained in the enumeration "PassbackStatus.lastAccess.direction"
| Enumerated value name | Designation | Definition |
|---|---|---|
| entry | entry | The last access was an entry. † |
| exit | exit | The last access was an exit. † |
A.3.72 The <> "PassbackStatus.recordedPresence"
Values of recordedPresence on PassbackStatus.
Defined inline on PassbackStatus; the API names it by its owner and attribute.
Table A.133 -- Values contained in the enumeration "PassbackStatus.recordedPresence"
| Enumerated value name | Designation | Definition |
|---|---|---|
| inside | inside | The anti-passback record places the credential inside the facility. † |
| outside | outside | The anti-passback record places the credential outside the facility. † |
| unknown | unknown | The anti-passback record does not place the credential. † |
A.3.73 The <> "PassbackStatus.state"
Values of state on PassbackStatus.
Defined inline on PassbackStatus; the API names it by its owner and attribute.
Table A.134 -- Values contained in the enumeration "PassbackStatus.state"
| Enumerated value name | Designation | Definition |
|---|---|---|
| normal | normal | The recorded presence agrees with the expected presence. † |
| violation | violation | The recorded presence contradicts the expected presence, so anti-passback refuses the credential. † |
| unknown | unknown | The implementation does not track passback for this credential (Part 17 §17.8). † |
A.3.74 The <> "PaymentDetail.rateSold.class"
Values of rateSold.class on PaymentDetail.
Defined inline on PaymentDetail; the API names it by its owner and attribute.
Table A.135 -- Values contained in the enumeration "PaymentDetail.rateSold.class"
| Enumerated value name | Designation | Definition |
|---|---|---|
| standard | standard | The published price. † |
| validation | validation | The price after a merchant validation. † |
| discount | discount | The price after a discount other than a validation. † |
| zeroed | zeroed | The charge was reduced to zero. † |
| other | other | Some other pricing. † |
A.3.75 The <> "PaymentDetail.rateSold.product"
Values of rateSold.product on PaymentDetail.
Defined inline on PaymentDetail; the API names it by its owner and attribute.
Table A.136 -- Values contained in the enumeration "PaymentDetail.rateSold.product"
| Enumerated value name | Designation | Definition |
|---|---|---|
| standard | standard | A single stay. † |
| pass | pass | A pass covering more than one stay or a period. † |
| other | other | Some other product. † |
A.3.76 The <> "PaymentLink.status"
Values of status on PaymentLink.
Defined inline on PaymentLink; the API names it by its owner and attribute.
Table A.137 -- Values contained in the enumeration "PaymentLink.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| sent | sent | The link has been sent to the customer and not yet opened. † |
| opened | opened | The customer has opened the link but not yet paid. † |
| paid | paid | The customer paid through the link; the payment is referenced (Part 13 §13.1a). † |
| expired | expired | The link lapsed without payment. † |
| cancelled | cancelled | The link was cancelled and the hosted page no longer accepts payment (Part 13 §13.1a). † |
A.3.77 The <> "PaymentRecord.captureStatus"
Whether an approved payment's funds have been collected (Part 13 §13.1a). authorized = a hold: the payment layer approved an authorization-only request (captureLater: true), funds are held, nothing is collected yet; settled by POST /v1/payments/{id}/capture or released by …/void. captured = collected. Absent = captured (a sale). A hold is returned to the caller that created it, but is not listed by GET /v1/payments unless asked for, is not published on apx.accounts.payment.recorded.v1, and is not materialized as an APDS Payment until captured.
Defined inline on PaymentRecord; the API names it by its owner and attribute.
Table A.138 -- Values contained in the enumeration "PaymentRecord.captureStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| authorized | authorized | a hold: the payment layer approved an |
| captured | captured | collected |
A.3.78 The <> "PaymentRecord.channel"
Where the payment was captured. lane = a lane device; payStation = a pay-on-foot or pay station; agent = a person on the implementer's own PCI-scoped terminal; autoAttendant = a PCI-compliant IVR that captures the card out of band; online = web or mobile app. APX never carries PANs, whichever channel is used.
Defined inline on PaymentRecord; the API names it by its owner and attribute.
Table A.139 -- Values contained in the enumeration "PaymentRecord.channel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| lane | lane | a lane device |
| payStation | pay station | a pay-on-foot or pay station |
| agent | agent | a person on the implementer's |
| autoAttendant | auto attendant | a PCI-compliant IVR that |
| online | online | web or mobile app |
| other | other | The payment was captured through a channel not otherwise listed. † |
A.3.79 The <> "PaymentRecord.paymentStatus"
The payment layer's answer. approved = approved (for a hold, see captureStatus); declined = refused by the payment layer; reversed = a hold voided, or a payment refunded in full. Transitions per Part 13 §13.1a.
Defined inline on PaymentRecord; the API names it by its owner and attribute.
Table A.140 -- Values contained in the enumeration "PaymentRecord.paymentStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| approved | approved | approved (for a hold, see |
| declined | declined | refused by the payment layer |
| reversed | reversed | a hold voided, or a payment refunded in full |
A.3.80 The <> "PaymentSearch.captureStatus"
Values of captureStatus on PaymentSearch.
Defined inline on PaymentSearch; the API names it by its owner and attribute.
Table A.141 -- Values contained in the enumeration "PaymentSearch.captureStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| authorized | authorized | Return only holds, whose funds are authorized but not yet collected (Part 13 §13.2). † |
| captured | captured | Return only payments whose funds have been collected (Part 13 §13.2). † |
A.3.81 The <> "PermitExtension.overageBilling.mode"
rack — the place's transient rate deck; dayRate — the flat dayRate; none — recorded, not billed.
Defined inline on PermitExtension; the API names it by its owner and attribute.
Table A.142 -- Values contained in the enumeration "PermitExtension.overageBilling.mode"
| Enumerated value name | Designation | Definition |
|---|---|---|
| rack | rack | the place's transient rate deck |
| dayRate | day rate | An overage is charged the flat dayRate (Part 14 §14.2d). † |
| none | none | recorded, not billed. |
A.3.82 The <> "PlateCorrection.decision"
Values of decision on PlateCorrection.
Defined inline on PlateCorrection; the API names it by its owner and attribute.
Table A.143 -- Values contained in the enumeration "PlateCorrection.decision"
| Enumerated value name | Designation | Definition |
|---|---|---|
| confirmed | confirmed | The reviewer keeps the engine's values. † |
| corrected | corrected | The reviewer replaces the engine's values with the ones given. † |
| rejected | rejected | The reviewer marks the read unusable for pairing and enforcement (Part 13 §13.3a(4a)). † |
A.3.83 The <> "PlateList.status"
Values of status on PlateList.
Defined inline on PlateList; the API names it by its owner and attribute.
Table A.144 -- Values contained in the enumeration "PlateList.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| active | active | The list applies at its places. † |
| suspended | suspended | The list is temporarily not applied anywhere; its entries remain readable (Part 24 §24.1). † |
| retired | retired | The list is withdrawn and applies nowhere; its entries remain readable for audit (Part 24 §24.1). † |
A.3.84 The <> "ReceiptDelivery.channel"
Values of channel on ReceiptDelivery.
Defined inline on ReceiptDelivery; the API names it by its owner and attribute.
Table A.145 -- Values contained in the enumeration "ReceiptDelivery.channel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| The receipt was sent, or queued, by e-mail. † | ||
| sms | sms | The receipt was sent, or queued, by text message. † |
| The receipt was printed at the device. † | ||
| link | link | The receipt is available at the returned link. † |
A.3.85 The <> "ReceiptDelivery.status"
Values of status on ReceiptDelivery.
Defined inline on ReceiptDelivery; the API names it by its owner and attribute.
Table A.146 -- Values contained in the enumeration "ReceiptDelivery.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| queued | queued | Accepted for delivery; not yet sent. † |
| sent | sent | Delivered to the channel. † |
| failed | failed | Delivery failed; the destination or the channel did not accept it. † |
A.3.86 The <> "ReceiptRequest.channel"
print re-prints at the device the payment was taken on; link returns a short-lived URL for the agent to read out or forward.
Defined inline on ReceiptRequest; the API names it by its owner and attribute.
Table A.147 -- Values contained in the enumeration "ReceiptRequest.channel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| Send the receipt by e-mail to the destination address (Part 13 §13.1a). † | ||
| sms | sms | Send the receipt by text message to the destination number. † |
| Print the receipt at the device that took the payment. † | ||
| link | link | Return a link from which the receipt can be fetched; no destination is needed. † |
A.3.87 The <> "ReservationExtension.reservationState"
Values of reservationState on ReservationExtension.
Defined inline on ReservationExtension; the API names it by its owner and attribute.
Table A.148 -- Values contained in the enumeration "ReservationExtension.reservationState"
| Enumerated value name | Designation | Definition |
|---|---|---|
| confirmed | confirmed | The reservation is booked and awaiting use. † |
| amended | amended | The reservation has been changed and is awaiting use. † |
| cancelled | cancelled | The reservation was cancelled before use. † |
| checkedIn | checked in | A Session has used the reservation. † |
| noShow | no show | The reservation was not used before its no-show time (Part 14 §14.1). † |
A.3.88 The <> "ReservationSummary.reservationState"
Values of reservationState on ReservationSummary.
Defined inline on ReservationSummary; the API names it by its owner and attribute.
Table A.149 -- Values contained in the enumeration "ReservationSummary.reservationState"
| Enumerated value name | Designation | Definition |
|---|---|---|
| confirmed | confirmed | The reservation is booked and awaiting use. † |
| amended | amended | The reservation has been changed and is awaiting use. † |
| cancelled | cancelled | The reservation was cancelled before use. † |
| checkedIn | checked in | A Session has used the reservation. † |
| noShow | no show | The reservation was not used before its no-show time (Part 14 §14.1). † |
A.3.89 The <> "ResolutionContext.accessDecision.status"
Values of accessDecision.status on ResolutionContext.
Defined inline on ResolutionContext; the API names it by its owner and attribute.
Table A.150 -- Values contained in the enumeration "ResolutionContext.accessDecision.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| granted | granted | Access was granted. † |
| denied | denied | Access was refused. † |
| pending | pending | The access decision has not yet been made. † |
| unknown | unknown | The access decision is not known. † |
A.3.90 The <> "ResolutionContext.status"
partial = at least one source has not answered yet; re-read to refresh.
Defined inline on ResolutionContext; the API names it by its owner and attribute.
Table A.151 -- Values contained in the enumeration "ResolutionContext.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| full | full | Every source has answered. † |
| partial | partial | At least one source has not answered yet; re-read to refresh (Part 17 §17.2). † |
A.3.91 The <> "ResolutionResolveRequest.guestReference.kind"
Values of guestReference.kind on ResolutionResolveRequest.
Defined inline on ResolutionResolveRequest; the API names it by its owner and attribute.
Table A.152 -- Values contained in the enumeration "ResolutionResolveRequest.guestReference.kind"
| Enumerated value name | Designation | Definition |
|---|---|---|
| hotelRoom | hotel room | A hotel room number, for a guest parking under a hotel arrangement (Part 17 §17.1). † |
| company | company | A company or merchant name the parker claims to visit or work for. † |
| tenant | tenant | A tenant of the building the place serves, for a tenant's employee or visitor. † |
| event | event | An event name or booking, for an attendee. † |
| other | other | Another kind of reference, as the operator and the call platform agree. † |
A.3.92 The <> "SessionDetail.lifecycle"
open — a vehicle is in the facility, no actualEnd yet; ended — closed, may still be revised; final — no further revision expected; disputed — under review. Every state but open requires actualEnd, and open forbids it (422 request-unprocessable otherwise). final is the writer's statement, never a lock: a server MUST NOT refuse a later revision on that ground.
Defined inline on SessionDetail; the API names it by its owner and attribute.
Table A.153 -- Values contained in the enumeration "SessionDetail.lifecycle"
| Enumerated value name | Designation | Definition |
|---|---|---|
| open | open | The vehicle is in the facility and the Session has no end time (Part 5 §5.8). † |
| ended | ended | closed, may still be revised |
| final | final | no further revision |
| disputed | disputed | under review |
A.3.93 The <> "SessionReadBinding.role"
entry and exit are the passages that opened and closed the visit; duplicate is the same passage seen by another camera or frame; activity is the vehicle seen inside (a sweep, a bay camera).
Defined inline on SessionReadBinding; the API names it by its owner and attribute.
Table A.154 -- Values contained in the enumeration "SessionReadBinding.role"
| Enumerated value name | Designation | Definition |
|---|---|---|
| entry | entry | The passage that opened the visit. † |
| exit | exit | The passage that closed the visit. † |
| duplicate | duplicate | The same passage seen by another camera or in another frame. † |
| activity | activity | The vehicle seen inside the facility, for example during a sweep or by a bay camera. † |
A.3.94 The <> "Signage.signageStatus"
Values of signageStatus on Signage.
Defined inline on Signage; the API names it by its owner and attribute.
Table A.155 -- Values contained in the enumeration "Signage.signageStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| active | active | The sign is posted and in force. † |
| superseded | superseded | Replaced by a newer sign record or version (Part 19 §19.11). † |
| removed | removed | The sign has been taken down without a replacement. † |
A.3.95 The <> "StayCompliance.family"
The family of the status. For a registry status it MUST be the family the registry gives (422 request-unprocessable). compliant — rights or an exemption covered the stay violation — the stay was not covered as the policy requires withheld — not scored, or held back for review other — an outcome none of the other families fits, for example paid after exit
Defined inline on StayCompliance; the API names it by its owner and attribute.
Table A.156 -- Values contained in the enumeration "StayCompliance.family"
| Enumerated value name | Designation | Definition |
|---|---|---|
| compliant | compliant | rights or an exemption covered the stay |
| violation | violation | the stay was not covered as the policy requires |
| withheld | withheld | not scored, or held back for review |
| other | other | an outcome none of the other families fits, for example paid after exit |
A.3.96 The <> "SubscriptionFilters.severityFloor"
For alert topics — minimum severity delivered.
Defined inline on SubscriptionFilters; the API names it by its owner and attribute.
Table A.157 -- Values contained in the enumeration "SubscriptionFilters.severityFloor"
| Enumerated value name | Designation | Definition |
|---|---|---|
| info | info | Alerts of every severity are delivered. † |
| warning | warning | Alerts of warning severity and above are delivered. † |
| minor | minor | Alerts of minor severity and above are delivered. † |
| major | major | Alerts of major severity and above are delivered. † |
| critical | critical | Only critical alerts are delivered. † |
A.3.97 The <> "SupportInteraction.agentType"
Values of agentType on SupportInteraction.
Defined inline on SupportInteraction; the API names it by its owner and attribute.
Table A.158 -- Values contained in the enumeration "SupportInteraction.agentType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| human | human | A person handled the interaction. † |
| ai | ai | An AI agent handled the interaction. † |
A.3.98 The <> "TollTransaction.transactionStatus"
Values of transactionStatus on TollTransaction.
Defined inline on TollTransaction; the API names it by its owner and attribute.
Table A.159 -- Values contained in the enumeration "TollTransaction.transactionStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| created | created | Assembled from observations, not yet priced. † |
| priced | priced | Priced and awaiting payment. † |
| paid | paid | Settled by a payment. † |
| disputed | disputed | Under dispute. † |
| resolved | resolved | A dispute has been resolved. † |
| voided | voided | Cancelled by the operator. † |
A.3.99 The <> "UiActionRecord.outcome"
Values of outcome on UiActionRecord.
Defined inline on UiActionRecord; the API names it by its owner and attribute.
Table A.160 -- Values contained in the enumeration "UiActionRecord.outcome"
| Enumerated value name | Designation | Definition |
|---|---|---|
| completed | completed | The action was carried out on the surface. † |
| failed | failed | The action was attempted on the surface and did not succeed. † |
| noAction | no action | The agent took no action; recorded so that the launch is accounted for. † |
A.3.100 The <> "UiActionRecord.unavailable.reason"
Values of unavailable.reason on UiActionRecord.
Defined inline on UiActionRecord; the API names it by its owner and attribute.
Table A.161 -- Values contained in the enumeration "UiActionRecord.unavailable.reason"
| Enumerated value name | Designation | Definition |
|---|---|---|
| notSupported | not supported | The surface never knows this value (Part 25 §25.4). † |
| notApplicable | not applicable | The value does not apply to this action. † |
A.3.101 The <> "UiLaunch.status"
issued → opened on first use of the url or token (single use) → closed when the screen reports it is done, or expired when expiresAt passes unused. An opened launch not closed within the implementation's limit (RECOMMENDED 1 h) also becomes expired (Part 25 §25.3).
Defined inline on UiLaunch; the API names it by its owner and attribute.
Table A.162 -- Values contained in the enumeration "UiLaunch.status"
| Enumerated value name | Designation | Definition |
|---|---|---|
| issued | issued | Created; the URL or token has not yet been used (Part 25 §25.3). † |
| opened | opened | The URL or token was used once and the surface is open for the agent. † |
| closed | closed | The surface reported the end of the session, or the implementation observed it; final. † |
| expired | expired | Part 25 §25.3). |
A.3.102 The <> "UiLaunchRequest.agentType"
Values of agentType on UiLaunchRequest.
Defined inline on UiLaunchRequest; the API names it by its owner and attribute.
Table A.163 -- Values contained in the enumeration "UiLaunchRequest.agentType"
| Enumerated value name | Designation | Definition |
|---|---|---|
| human | human | A person will use the surface. † |
| ai | ai | An AI agent will use the surface. † |
A.3.103 The <> "UiLaunchRequest.displayMode"
Values of displayMode on UiLaunchRequest.
Defined inline on UiLaunchRequest; the API names it by its owner and attribute.
Table A.164 -- Values contained in the enumeration "UiLaunchRequest.displayMode"
| Enumerated value name | Designation | Definition |
|---|---|---|
| embed | embed | Show the surface inside the host's page. † |
| popup | popup | Show the surface in a pop-up window. † |
| tab | tab | Show the surface in a new browser tab. † |
A.3.104 The <> "UiSurface.displayModes"
Values of displayModes on UiSurface.
Defined inline on UiSurface; the API names it by its owner and attribute.
Table A.165 -- Values contained in the enumeration "UiSurface.displayModes"
| Enumerated value name | Designation | Definition |
|---|---|---|
| embed | embed | The surface may be shown inside the host's page (the host's origin must be registered; Part 25 §25.6). † |
| popup | popup | The surface may be shown in a pop-up window. † |
| tab | tab | The surface may be shown in a new browser tab. † |
A.3.105 The <> "UiSurface.launchModes"
Values of launchModes on UiSurface.
Defined inline on UiSurface; the API names it by its owner and attribute.
Table A.166 -- Values contained in the enumeration "UiSurface.launchModes"
| Enumerated value name | Designation | Definition |
|---|---|---|
| handshake | handshake | The host posts a launch request with its APX token and opens the single-use URL returned (Part 25 §25.2). † |
| signedToken | signed token | The host signs a launch token and sends it to the surface's launch URL by form post or URL fragment (Part 25 §25.2). † |
A.3.106 The <> "ValetHandbackRequest.verificationMethod"
Values of verificationMethod on ValetHandbackRequest.
Defined inline on ValetHandbackRequest; the API names it by its owner and attribute.
Table A.167 -- Values contained in the enumeration "ValetHandbackRequest.verificationMethod"
| Enumerated value name | Designation | Definition |
|---|---|---|
| ticket | ticket | The claim ticket was presented. † |
| phone | phone | The customer's phone or application was verified. † |
| code | code | A one-time code was given. † |
| id | id | An identity document was checked. † |
| attendant | attendant | An attendant recognised the customer. † |
A.3.107 The <> "ValetRetrievalRequest.channel"
Values of channel on ValetRetrievalRequest.
Defined inline on ValetRetrievalRequest; the API names it by its owner and attribute.
Table A.168 -- Values contained in the enumeration "ValetRetrievalRequest.channel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| sms | sms | The customer asked by text message. † |
| app | app | The customer asked in a mobile application. † |
| web | web | The customer asked on a web page. † |
| voiceBot | voice bot | The customer asked through an automated voice service. † |
| kiosk | kiosk | The customer asked at a self-service kiosk. † |
| attendant | attendant | An attendant raised the request at the stand. † |
| callCenter | call center | An agent at a contact centre raised the request. † |
A.3.108 The <> "ValetTicket.customer.contactChannel.type"
Values of customer.contactChannel.type on ValetTicket.
Defined inline on ValetTicket; the API names it by its owner and attribute.
Table A.169 -- Values contained in the enumeration "ValetTicket.customer.contactChannel.type"
| Enumerated value name | Designation | Definition |
|---|---|---|
| sms | sms | The customer is reached by text message. † |
| app | app | The customer is reached through a mobile application. † |
| web | web | The customer is reached through a web page. † |
| voice | voice | The customer is reached by voice call. † |
| The customer is reached by email. † | ||
| none | none | The customer has given no channel to be reached on. † |
A.3.109 The <> "ValetTicket.handback.verificationMethod"
Values of handback.verificationMethod on ValetTicket.
Defined inline on ValetTicket; the API names it by its owner and attribute.
Table A.170 -- Values contained in the enumeration "ValetTicket.handback.verificationMethod"
| Enumerated value name | Designation | Definition |
|---|---|---|
| ticket | ticket | The claim ticket was presented. † |
| phone | phone | The customer's phone or application was verified. † |
| code | code | A one-time code was given. † |
| id | id | An identity document was checked. † |
| attendant | attendant | An attendant recognised the customer. † |
A.3.110 The <> "ValetTicket.retrieval.channel"
Values of retrieval.channel on ValetTicket.
Defined inline on ValetTicket; the API names it by its owner and attribute.
Table A.171 -- Values contained in the enumeration "ValetTicket.retrieval.channel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| sms | sms | The customer asked by text message. † |
| app | app | The customer asked in a mobile application. † |
| web | web | The customer asked on a web page. † |
| voiceBot | voice bot | The customer asked through an automated voice service. † |
| kiosk | kiosk | The customer asked at a self-service kiosk. † |
| attendant | attendant | An attendant raised the request at the stand. † |
| callCenter | call center | An agent at a contact centre raised the request. † |
A.3.111 The <> "ValetTicket.valetStatus"
Values of valetStatus on ValetTicket.
Defined inline on ValetTicket; the API names it by its owner and attribute.
Table A.172 -- Values contained in the enumeration "ValetTicket.valetStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| dropped | dropped | Custody taken; the vehicle has not yet been parked. † |
| parked | parked | The vehicle is parked. † |
| requested | requested | The customer has asked for the vehicle. † |
| retrieving | retrieving | An attendant is fetching the vehicle. † |
| staged | staged | The vehicle is waiting at the pickup point. † |
| handedBack | handed back | The vehicle has been handed back. † |
| closed | closed | The stay is settled (Part 22 §22.1). † |
| cancelled | cancelled | The ticket was cancelled before custody was taken; this is final (Part 22 §22.1). † |
A.3.112 The <> "ValidationInstrument.instrumentStatus"
Values of instrumentStatus on ValidationInstrument.
Defined inline on ValidationInstrument; the API names it by its owner and attribute.
Table A.173 -- Values contained in the enumeration "ValidationInstrument.instrumentStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| valid | valid | The instrument may be redeemed. † |
| redeemed | redeemed | The instrument has been applied to a ticket or session. † |
| void | void | The instrument has been withdrawn. † |
| expired | expired | The instrument is past its validTo time (Part 20 §20.2). † |
A.3.113 The <> "ValidationIssuance.issuanceStatus"
void after POST …/issuances/{issuanceId}/void (Part 20 §20.2 rule 5).
Defined inline on ValidationIssuance; the API names it by its owner and attribute.
Table A.174 -- Values contained in the enumeration "ValidationIssuance.issuanceStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| issued | issued | The batch is in force. † |
| void | void | The batch has been withdrawn; unredeemed instruments may not be used (Part 20 §20.2). † |
A.3.114 The <> "ValidationIssuance.method"
Values of method on ValidationIssuance.
Defined inline on ValidationIssuance; the API names it by its owner and attribute.
Table A.175 -- Values contained in the enumeration "ValidationIssuance.method"
| Enumerated value name | Designation | Definition |
|---|---|---|
| code | code | A printed or displayed alphanumeric code. † |
| qrCode | qr code | A QR code. † |
| stamp | stamp | A stamp applied to a ticket, with no individual code. † |
| digital | digital | A digital token held in an application. † |
| api | api | Redemptions recorded directly by a merchant system, with no per-instrument code (Part 20 §20.2). † |
A.3.115 The <> "ValidationIssuanceRequest.issuanceStatus"
Values of issuanceStatus on ValidationIssuanceRequest.
Defined inline on ValidationIssuanceRequest; the API names it by its owner and attribute.
Table A.176 -- Values contained in the enumeration "ValidationIssuanceRequest.issuanceStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| issued | issued | The batch is in force. † |
| void | void | The batch has been withdrawn; unredeemed instruments may not be used (Part 20 §20.2). † |
A.3.116 The <> "ValidationIssuanceRequest.method"
Values of method on ValidationIssuanceRequest.
Defined inline on ValidationIssuanceRequest; the API names it by its owner and attribute.
Table A.177 -- Values contained in the enumeration "ValidationIssuanceRequest.method"
| Enumerated value name | Designation | Definition |
|---|---|---|
| code | code | A printed or displayed alphanumeric code. † |
| qrCode | qr code | A QR code. † |
| stamp | stamp | A stamp applied to a ticket, with no individual code. † |
| digital | digital | A digital token held in an application. † |
| api | api | Redemptions recorded directly by a merchant system, with no per-instrument code (Part 20 §20.2). † |
A.3.117 The <> "ValidationProgram.billing.billingCycle"
Values of billing.billingCycle on ValidationProgram.
Defined inline on ValidationProgram; the API names it by its owner and attribute.
Table A.178 -- Values contained in the enumeration "ValidationProgram.billing.billingCycle"
| Enumerated value name | Designation | Definition |
|---|---|---|
| monthly | monthly | Billed once a month. † |
| weekly | weekly | Billed once a week. † |
| perRedemption | per redemption | Billed for each redemption as it is applied. † |
A.3.118 The <> "ValidationProgram.billing.model"
Values of billing.model on ValidationProgram.
Defined inline on ValidationProgram; the API names it by its owner and attribute.
Table A.179 -- Values contained in the enumeration "ValidationProgram.billing.model"
| Enumerated value name | Designation | Definition |
|---|---|---|
| merchantPays | merchant pays | The merchant pays for each redemption (Part 20 §20.6). † |
| operatorAbsorbs | operator absorbs | The operator bears the cost and nothing is billable (Part 20 §20.6). † |
| split | split | The merchant pays a share of the amount reduced (Part 20 §20.6). † |
A.3.119 The <> "ValidationProgram.issuanceMethods"
Values of issuanceMethods on ValidationProgram.
Defined inline on ValidationProgram; the API names it by its owner and attribute.
Table A.180 -- Values contained in the enumeration "ValidationProgram.issuanceMethods"
| Enumerated value name | Designation | Definition |
|---|---|---|
| code | code | A printed or displayed alphanumeric code. † |
| qrCode | qr code | A QR code. † |
| stamp | stamp | A stamp applied to a ticket, with no individual code. † |
| digital | digital | A digital token held in an application. † |
| api | api | Redemptions recorded directly by a merchant system, with no per-instrument code (Part 20 §20.2). † |
A.3.120 The <> "ValidationProgram.programStatus"
Values of programStatus on ValidationProgram.
Defined inline on ValidationProgram; the API names it by its owner and attribute.
Table A.181 -- Values contained in the enumeration "ValidationProgram.programStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| active | active | The program is in force and its validations may be redeemed. † |
| suspended | suspended | The program is temporarily stopped and redemptions are refused; it may be resumed (Part 20 §20.1). † |
| ended | ended | The program has ended; this is final (Part 20 §20.1). † |
A.3.121 The <> "ValidationRedemption.channel"
Values of channel on ValidationRedemption.
Defined inline on ValidationRedemption; the API names it by its owner and attribute.
Table A.182 -- Values contained in the enumeration "ValidationRedemption.channel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| lane | lane | Applied by equipment in a lane. † |
| payStation | pay station | Applied at a pay station. † |
| merchantApp | merchant app | Applied in a merchant's application. † |
| callCenter | call center | Applied by an agent through the applyValidation command (Part 20 §20.3). † |
| api | api | Recorded directly by a connected system. † |
A.3.122 The <> "ValidationRedemption.redemptionStatus"
Values of redemptionStatus on ValidationRedemption.
Defined inline on ValidationRedemption; the API names it by its owner and attribute.
Table A.183 -- Values contained in the enumeration "ValidationRedemption.redemptionStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| applied | applied | The validation is applied to the ticket or session. † |
| reversed | reversed | The validation was reversed (Part 20 §20.4). † |
A.3.123 The <> "ValidationStatement.billingModel"
Values of billingModel on ValidationStatement.
Defined inline on ValidationStatement; the API names it by its owner and attribute.
Table A.184 -- Values contained in the enumeration "ValidationStatement.billingModel"
| Enumerated value name | Designation | Definition |
|---|---|---|
| merchantPays | merchant pays | The merchant pays for each redemption (Part 20 §20.6). † |
| operatorAbsorbs | operator absorbs | The operator bears the cost and nothing is billable (Part 20 §20.6). † |
| split | split | The merchant pays a share of the amount reduced (Part 20 §20.6). † |
A.3.124 The <> "ValidationStatement.lines.lineKind"
redemption (default when absent) — a redemption applied in the period. credit — a redemption billed on an earlier closed statement and reversed since; billable is negative.
Defined inline on ValidationStatement; the API names it by its owner and attribute.
Table A.185 -- Values contained in the enumeration "ValidationStatement.lines.lineKind"
| Enumerated value name | Designation | Definition |
|---|---|---|
| redemption | redemption | default when absent) — a redemption applied in |
| credit | credit | a redemption billed on an earlier |
A.3.125 The <> "ValidationStatement.statementStatus"
Values of statementStatus on ValidationStatement.
Defined inline on ValidationStatement; the API names it by its owner and attribute.
Table A.186 -- Values contained in the enumeration "ValidationStatement.statementStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| preview | preview | A computed preview for a period, with no identifier (Part 20 §20.6). † |
| closed | closed | An immutable statement for a closed period that the operator invoices from (Part 20 §20.6). † |
A.3.126 The <> "Violation.amountHistory.reason"
Values of amountHistory.reason on Violation.
Defined inline on Violation; the API names it by its owner and attribute.
Table A.187 -- Values contained in the enumeration "Violation.amountHistory.reason"
| Enumerated value name | Designation | Definition |
|---|---|---|
| issued | issued | The amount set when the notice was issued. † |
| escalation | escalation | A server-applied escalation step increased the amount (Part 19 §19.10). † |
| appealReduced | appeal reduced | An appeal resolved as reduced lowered the amount. † |
| cap | cap | The amount asked for at issue exceeded the penalty cap and was clamped to it (Part 19 §19.10). † |
A.3.127 The <> "Violation.appeal.openedFrom"
The state the appeal was opened from; paid is a pay-then-appeal (Part 19 §19.6). upheld and reduced return the violation to this state.
Defined inline on Violation; the API names it by its owner and attribute.
Table A.188 -- Values contained in the enumeration "Violation.appeal.openedFrom"
| Enumerated value name | Designation | Definition |
|---|---|---|
| issued | issued | The appeal was opened while the violation was issued and unpaid. † |
| paid | paid | The appeal was opened after payment, a pay-then-appeal (Part 19 §19.6). † |
A.3.128 The <> "Violation.violationStatus"
Current lifecycle state (see schema description for transitions).
Defined inline on Violation; the API names it by its owner and attribute.
Table A.189 -- Values contained in the enumeration "Violation.violationStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| detected | detected | The violation has been found and is awaiting review. † |
| confirmed | confirmed | A reviewer has confirmed the violation and a notice may be issued. † |
| dismissed | dismissed | A reviewer has rejected the violation; this is final. † |
| issued | issued | A notice has been issued and payment is outstanding. † |
| paid | paid | The amount has been paid in full. † |
| appealed | appealed | An appeal is open. † |
| closed | closed | The violation is finished, after payment or a successful appeal; this is final. † |
| voided | voided | The violation was withdrawn, for example as issued in error or a duplicate; this is final (Part 19 §19.1). † |
A.3.129 The <> "ViolationDetection.mode"
automated — a camera/sensor pipeline created the violation with no human in the loop. guided — the system surfaced a candidate (typically to a handheld) and an officer confirms on site. manual — an officer created the violation directly.
Defined inline on ViolationDetection; the API names it by its owner and attribute.
Table A.190 -- Values contained in the enumeration "ViolationDetection.mode"
| Enumerated value name | Designation | Definition |
|---|---|---|
| automated | automated | a camera/sensor pipeline created the violation with |
| guided | guided | the system surfaced a candidate |
| manual | manual | an officer created the violation directly. |
A.3.130 The <> "ViolationImport.violationStatus"
The APX state the source's status maps to. paid requires amountPaid at least amount; a part-paid violation is issued (Part 19 §19.6a). The source's own wording goes in the decoration's sourceStatus.
Defined inline on ViolationImport; the API names it by its owner and attribute.
Table A.191 -- Values contained in the enumeration "ViolationImport.violationStatus"
| Enumerated value name | Designation | Definition |
|---|---|---|
| detected | detected | The source reports the violation as found and awaiting review. † |
| confirmed | confirmed | The source reports the violation as confirmed by a reviewer, with no notice yet. † |
| dismissed | dismissed | The source reports the violation as rejected by a reviewer; this is final. † |
| issued | issued | Part 19 §19.6a |
| paid | paid | The source reports the amount as paid in full (Part 19 §19.6a). † |
| appealed | appealed | The source reports an open appeal. † |
| closed | closed | The source reports the violation as finished; this is final. † |
| voided | voided | The source reports the violation as withdrawn; this is final. † |
A.3.131 The <> "ViolationReview.decision"
Values of decision on ViolationReview.
Defined inline on ViolationReview; the API names it by its owner and attribute.
Table A.192 -- Values contained in the enumeration "ViolationReview.decision"
| Enumerated value name | Designation | Definition |
|---|---|---|
| confirm | confirm | The reviewer confirms the detected candidate as a violation. † |
| dismiss | dismiss | The reviewer dismisses the detected candidate. † |
A.4 External code lists for "APX"
These lists extend APX string members without changing the schema, in the same way as the APDS user-defined code lists (APDS Use Case Document, Annex D). Implementers may publish further values (Part 11).
A.4.1 External code list "apx-access-denial-reasons"
Used by: LaneStatus.monthlyCredential.denialReason, CredentialAccessEvent.denialReason, AccessEvent.denialReason. Seeds the APDS proposal AccessDenialReasonEnum (Tier 1). Published as an APDS UserDefinedCodeList at spec/registries/apx-access-denial-reasons.json (Part 11).
Table A.193 -- Entries in the code list "apx-access-denial-reasons"
| definedValue | Description |
|---|---|
| credentialSuspended | The presented credential matched a CredentialRecord that is suspended. |
| credentialLost | The presented credential matched a CredentialRecord reported lost. |
| credentialRevoked | The presented credential matched a CredentialRecord that is revoked. |
| credentialReplaced | The presented credential matched a CredentialRecord that has been replaced by another. |
| credentialExpired | The presented credential matched a CredentialRecord that has expired. |
| unknownCredential | The presented value matched no CredentialRecord; the event carries what the reader read. |
| passback | Denied by anti-passback state (the credential is already in, or already out); corrected through the Part 17 passback commands. |
| accountBalance | Denied because of the holder's outstanding balance or account status. |
| outsidePlace | The credential is valid, but not at this place. |
| outsideValidity | The credential is valid at this place, but not at this time. |
| credentialNotYetActive | The presented credential matched a CredentialRecord that is issued but not yet active (its validity has not started, or it awaits activation). Distinct from outsideValidity, which is an active credential presented outside its permitted times. |
A.4.2 External code list "apx-alert-types"
Used by: SubscriptionFilters.alertTypes. Seeds the APDS proposal AlertTypeEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-alert-types.json (Part 11).
Table A.194 -- Entries in the code list "apx-alert-types"
| definedValue | Description |
|---|---|
| noCheckOut | Vehicle/right shows no check-out for a completed stay (APDS Use Case C.2.2 transaction exception). |
| wrongSpace | Vehicle occupies a different space than reserved/checked-in (C.2.2 transaction exception). |
| occupiedWithoutCheckIn | Space occupied with no matching check-in/session (C.2.2 space status). |
| iceInEvSpace | Non-EV vehicle occupying an EV charging space (C.2.2 transaction exception). |
| overstay | Session exceeds its right's validity or maximum stay. |
| deviceFault | A device reports a fault state. |
| deviceOffline | A device stopped communicating (lastCommunication exceeded threshold). |
| laneBlocked | A lane is blocked (vehicle stuck, barrier obstruction). |
| occupancyThresholdExceeded | Occupancy demand crossed a configured threshold for a place element. |
| paymentException | A payment failed, was reversed, or requires attention. |
| intercomRequest | A customer requested assistance at a lane/device intercom. |
| webhookDeliveryFailed | A subscription exhausted its delivery retry schedule and was marked failed (self-referential alert). |
| wrongWayTravel | An operator-defined alert that a vehicle travelled against a lane's configured purpose (e.g. entered on an exit lane). APX does not raise it or define when it applies: LPR reads carry only the vehicle's accessEvent, and the lane used does not change it (Part 13 §13.3a(6)). |
| evBayNotCharging | A vehicle has occupied an EV charging bay without connecting beyond the place's grace — the EV counterpart of iceInEvSpace, derived from the Part 23 §23.3 bay-presence fusion; the camera Observation is the evidence. |
| evBayBlocked | An EV charging bay is obstructed by something other than a parked vehicle (cones, debris, a straddling vehicle), derived from the Part 23 §23.3 bay-presence fusion; the camera Observation is the evidence. |
| watchListArrival | A credential on a watch plate list (Part 24) was read at a place where the list has alertOnArrival; relatedEntity is the PlateListEntry, the read is the evidence. |
| scofflawArrival | A credential on a scofflaw plate list (Part 24) was read at a place where the list has alertOnArrival; relatedEntity is the PlateListEntry. |
| refusedServiceArrival | A credential on a plate list with refuseService arrived at a lane and service was refused (the refused-service sign shown, the gate not vended); relatedEntity is the PlateListEntry, the displayMessage command's result.display is the proof of display. |
| consumableLow | A device reports a supply at low or empty (tickets, receipt paper, cash, coins; DeviceStatus.consumables, Part 6 §6.4a); relatedEntity is the SupplementalEquipment. |
| receiptRequested | A customer asked for a receipt that could not be sent during the interaction; relatedEntity is the PaymentRecord, supportInteraction the call. |
| refundRequested | A customer asked for a refund that needs review or approval; relatedEntity is the PaymentRecord, supportInteraction the call. |
| citationInquiry | A customer asked about a citation or notice the agent could not resolve; relatedEntity is the Violation when known. |
| damageReported | A vehicle was reported damaged, broken into or towed at the place; relatedEntity is the Session when known, supportInteraction the call. |
| customerCallbackRequested | A customer asked to be called back by the site or operator; supportInteraction is the call, which holds the contact details under its own scope. |
A.4.3 External code list "apx-area-types"
Used by: Not referenced by a schema description. Seeds the APDS proposal AreaTypeEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-area-types.json (Part 11).
Table A.195 -- Entries in the code list "apx-area-types"
| definedValue | Description |
|---|---|
| lane | Vehicle area: an entry or exit lane. |
| entryPlaza | Vehicle area: the approach to the entry lanes. |
| exitPlaza | Vehicle area: the approach to the exit lanes. |
| ramp | Vehicle area: a ramp between levels. |
| parkingLevel | Vehicle area: a drive aisle or parking area on a level. |
| roof | Vehicle area: an open roof level. |
| evChargingArea | Vehicle area: the EV charging bays. |
| loadingDock | Vehicle area: a loading or service area. |
| perimeter | Vehicle area: outside the facility, its fence line or the street. |
| elevator | Pedestrian area: inside an elevator car. |
| elevatorLobby | Pedestrian area: an elevator lobby. |
| lobby | Pedestrian area: the main or pedestrian lobby. |
| stairwell | Pedestrian area: a stairwell. |
| pedestrianEntrance | Pedestrian area: a street door or access door. |
| paymentArea | Pedestrian area: where the pay-on-foot stations are. |
| cashierBooth | Staff area: a cashier booth. |
| office | Staff area: an office or attendant room. |
| equipmentRoom | Staff area: a server or electrical room. |
| other | An area none of the other codes fit. A code, not free text. |
A.4.4 External code list "apx-command-types"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-command-types.json (Part 11).
Table A.196 -- Entries in the code list "apx-command-types"
| definedValue | Description |
|---|---|
| vendGate | Open (vend) a gate/barrier at the target lane once for one vehicle. |
| holdGateOpen | Hold the gate/barrier at the target lane open until released by a subsequent setDeviceState or closeLane command. |
| closeLane | Close the target lane to further entries/exits. |
| lostTicket | Issue a lost-ticket transaction at the target lane using the lost-ticket method given in parameters. |
| pushRate | Apply the RateTable referenced in parameters to the target lane or place. |
| applyValidation | Apply a validation from the given validation provider to the ticket/session referenced in parameters. |
| setDeviceState | Request the target device transition to the state given in parameters. |
| displayMessage | Display the message given in parameters on the target device (VMS, lane display). |
| restartDevice | Restart (reboot) the target device. |
| resetPassback | Reset the anti-passback state of the credential referenced in parameters to normal. |
| forceIn | Force the credential referenced in parameters to recorded presence 'inside' (passback correction). |
| forceOut | Force the credential referenced in parameters to recorded presence 'outside' (passback correction). |
| courtesyExit | Vend the gate at the target lane as a tracked courtesy exit for the account/holder referenced in parameters — counted against courtesy policy. |
| pushNegotiatedRate | Apply a negotiated rate to the CURRENT ticket at the target lane only, never to the lane's deck: a negotiable RateTable in parameters.rateTable, or (negotiatedAmounts feature) any amount in parameters.amount with a reason. The command's agent is who set it. |
| matchTicket | Bind the current transaction at the target lane to the open Session referenced in parameters (ticket matching), pricing the exit from that session's true entry time; the command's agent is who made the match. |
| startCharging | Remote-start charging on the target ElectricChargingEquipment for a plugged-in vehicle whose own authorization failed; parameters connectorIndex and chargingSession (Reference), or an authorization object for the server to open one (Part 23 §23.9). |
| stopCharging | Remote-stop charging on the target ElectricChargingEquipment; parameters connectorIndex and chargingSession; the bridge reports chargingEnded with stopReason remote (Part 23 §23.9). |
| unlockConnector | Release a cable the target ElectricChargingEquipment will not let go of; parameter connectorIndex; physicallyConfirmed only when the charger reported the connector unlocked or the bay camera saw the cable move (Part 23 §23.9). |
| ejectTicket | Return the ticket or card held by the target device (a ticket stuck on cancel, a card the reader kept) to the customer (Part 6 §6.1). |
| cancelTransaction | Abandon the transaction in progress at the target device and return it to idle, releasing any media it holds (Part 6 §6.1). |
| reprintReceipt | Print the receipt of the last, or the referenced, payment again at the target device; parameter payment (Part 6 §6.1, Part 13 §13.1b). |
A.4.5 External code list "apx-comms-point-types"
Used by: Not referenced by a schema description. Seeds the APDS proposal CommsPointTypeEnum (Tier 3). Published as an APDS UserDefinedCodeList at spec/registries/apx-comms-point-types.json (Part 11).
Table A.197 -- Entries in the code list "apx-comms-point-types"
| definedValue | Description |
|---|---|
| intercom | A help button with two-way audio and/or video on a lane, a door or a pay station; the call platform knows it by its device id or caller id. |
| analogDialer | A help button on a phone line; known by the line's caller id. |
| postedNumber | A phone number on a sign that the parker dials from their own phone; known by the dialled number, and resolves to the place only unless the sign is for one lane. |
| kiosk | A help function on a kiosk or pay station screen. |
| qrCode | A printed code that opens a help page or chat for the place or lane it was printed for. |
| app | A help function in the operator's or vendor's app. |
| other | A way of reaching help none of the other codes fit. A code, not free text. |
A.4.6 External code list "apx-conformance-classes"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-conformance-classes.json (Part 11).
Table A.198 -- Entries in the code list "apx-conformance-classes"
| definedValue | Description |
|---|---|
| apx-data | Implements APDS 4.1 native data routes with the APX data profile (Full/Change, tombstones, cursor change feed). |
| apx-events | Implements the APX delivery fabric over APDS /webhooks with HMAC signing and the normative retry schedule. |
| apx-events-sse | Implements the SSE event stream with Last-Event-ID resume. |
| apx-control | Implements the command plane, lane inquiry, validations, and device status. |
| apx-alerts | Implements the alert resource and lifecycle. |
| apx-discovery | Implements credential-scoped capability discovery. |
| apx-accounts | Implements account lookup, take-payment, and accounting write-back. |
| apx-payment-history | Implements payment history lookup by ticket. |
| apx-lpr | Implements LPR plate/ticket cross-lookup over APDS Observations. |
| apx-reservations | Implements the reservations profile over APDS quotes and assigned rights. |
| apx-permits | Implements the permits profile over RightSpecification, RightPool, and Credential. |
| apx-tolling | Implements TollTransaction and its dispute lifecycle. |
| apx-mtls | Optional hardening: mutual TLS on all APX endpoints. |
| apx-resolution | Implements Customer Service & Resolution: resolution contexts, policy-decided allowed actions, passback status, plate candidates, and support-interaction history. |
| apx-violations | Implements enforcement: the Violation lifecycle (automated and guided detection, review, issuance, settlement, appeals, void) and the eligibility check. |
| apx-validations | Implements validation program management: merchant enrolment, instrument issuance, the redemption ledger, and closable billing statements; the Part 6 provider list derives from active programs. |
| apx-credentials | Implements credential lifecycle: issue, activate, suspend, resume, report lost, revoke, replace, access-event history; active records materialized as APDS CredentialAssigned on the holder's AssignedRights. |
| apx-valet | Implements valet custody: drop-off with condition evidence, parked position and keys, the retrieval queue with ETA, staging, verified handback, and the customer request scope. |
| apx-charging | Implements the parking-side view of EV charging: live charging-point status with bay-presence fusion, the ChargingSession referencing the APDS Session, idle after complete, three settlement modes, and the customer status scope. Requires the base classes; the charger-control commands (Part 23 §23.9) require apx-control. |
| apx-plate-lists | Implements plate lists: watch, scofflaw, allow, and enforcement-vehicle lists with per-place flags, their entries, the change feed on both, and the apx.platelists.changed.v1 topic. Requires the base classes. |
| apx-ui-launch | Implements UI launch (Part 25): the handshake launch with single-use urls, the signed-token launch, the UiLaunch record and lifecycle, the loopback rule (native resource or UiActionRecord carrying the correlationId), discovery uiSurfaces, and the apx.ui.launch.changed.v1 and apx.ui.action.recorded.v1 topics. Requires the base classes and apx-discovery. |
| apx-site-config | Implements site configuration (Part 26): the equipment-detail, camera, external-ids and place-operations decorations, the equipment and comms-point routes with their change feeds, identifier resolution, camera views by short-lived link, and the apx.equipment.changed.v1 and apx.commspoints.changed.v1 topics. Requires the base classes. |
A.4.7 External code list "apx-device-states"
Used by: Not referenced by a schema description. Seeds the APDS proposal EquipmentStatusEnum (Tier 1). Published as an APDS UserDefinedCodeList at spec/registries/apx-device-states.json (Part 11).
Table A.199 -- Entries in the code list "apx-device-states"
| definedValue | Description |
|---|---|
| available | Device is operational and idle/ready (in the style of APDS RefillPointStatusEnum). |
| occupied | Device is operational and currently serving a vehicle/transaction. |
| inoperative | Device is not operating (planned: maintenance window, closed hours). |
| outOfService | Device removed from service by operator action. |
| fault | Device reports an error condition requiring attention. |
| unknown | Device state cannot be determined (e.g. communication lost). |
A.4.8 External code list "apx-display-message-kinds"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-display-message-kinds.json (Part 11).
Table A.200 -- Entries in the code list "apx-display-message-kinds"
| definedValue | Description |
|---|---|
| transientEntrance | Entrance sign: welcome for a vehicle with no standing right, which pays for its stay (Part 26 §26.9). |
| monthlyEntrance | Entrance sign: welcome for a vehicle a permit or monthly right covers. |
| entranceRefused | Entrance sign: service refused, the vend withheld (a plate list with refuseService, Part 24 §24.4). The record is the proof of display. |
| transientExitPaid | Exit sign: the stay is paid; thank you. |
| transientExitUnpaid | Exit sign: no payment found for the stay. Also shown for an overstay or a late start until kinds for those are added. |
| monthlyExit | Exit sign: goodbye for a vehicle a permit or monthly right covers. |
| monthlyExitBalanceDue | Exit sign: a permit or monthly holder with a balance due on the account. |
| idle | Either sign: the resting message shown when no vehicle is being served. |
| fallback | Either sign: the message shown when the system that drives the sign cannot decide which message applies (no read, no rights data). |
A.4.9 External code list "apx-equipment-roles"
Used by: Not referenced by a schema description. Seeds the APDS proposal EquipmentRoleEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-equipment-roles.json (Part 11).
Table A.201 -- Entries in the code list "apx-equipment-roles"
| definedValue | Description |
|---|---|
| gate | Vehicle barrier: a barrier arm. |
| overheadDoor | Vehicle barrier: a rolling or overhead door. |
| bollard | Vehicle barrier: a retractable bollard. |
| trafficSpikes | Vehicle barrier: one-way tyre spikes. |
| accessDoor | Pedestrian barrier: a door a parker authenticates at to enter the facility, for example after hours to reach their car. Place-level equipment with no lane. |
| turnstile | Pedestrian barrier: a turnstile at a pedestrian entrance. |
| ticketDispenser | Ticketing: the entry station that issues a ticket or token. |
| exitVerifier | Ticketing: the exit station that reads the ticket or credential and opens the gate. |
| exitPayStation | Payment: a pay-in-lane station at the exit (APDS type paymentMachine). |
| payOnFoot | Payment: a central pay station away from the lanes (APDS type paymentMachine). |
| cashierBooth | Payment: a staffed booth. |
| validationTerminal | Payment: a merchant validator. |
| paymentTerminal | Payment: a standalone card or tap terminal. |
| cardReader | Credential reader: an access or proximity card reader. |
| tagReader | Credential reader: an RFID, transponder or AVI tag reader. |
| barcodeReader | Credential reader: a QR or barcode reader for reservations and mobile passes. |
| loopDetector | Vehicle detection: an in-ground loop. |
| presenceSensor | Vehicle detection: a non-loop vehicle sensor (radar, ultrasonic, magnetic). |
| camera | A camera anywhere on the site; what it looks at, how it is mounted and how it is viewed are in the apds-ext:apx:camera@1.0 decoration (Part 26 §26.3). |
| intercom | Communications: a help button with two-way audio and/or video. |
| analogDialer | Communications: a help button on a phone line. |
| emergencyPhone | Communications: a dedicated emergency call box. |
| laneDisplay | Signs and displays: a message screen at the lane. |
| laneSignal | Signs and displays: an open/closed light or traffic light. |
| countSign | Signs and displays: a spaces-available sign. |
| laneController | On-site infrastructure: a lane computer or controller. |
| facilityServer | On-site infrastructure: the on-site PARCS server. |
| videoRecorder | On-site infrastructure: a DVR or NVR; a camera's recorder points here. |
| videoGateway | On-site infrastructure: the gateway that issues short-lived camera links (Part 26 §26.4). |
| other | Hardware none of the other codes fit. A code, not free text; propose a new code rather than describing the item in prose. |
A.4.10 External code list "apx-escalation-roles"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-escalation-roles.json (Part 11).
Table A.202 -- Entries in the code list "apx-escalation-roles"
| definedValue | Description |
|---|---|
| siteManager | The manager responsible for the place. |
| attendant | Staff on site at the time. |
| security | The place's security desk or patrol. |
| operatorOnCall | The operator's on-call duty manager or supervisor. |
| maintenance | The maintenance or service provider for the equipment. |
| other | A role none of the other codes fit. A code, not free text. |
A.4.11 External code list "apx-features"
Used by: DiscoveryDocument.features, ApxConfiguration.features. Published as an APDS UserDefinedCodeList at spec/registries/apx-features.json (Part 11).
Table A.203 -- Entries in the code list "apx-features"
| definedValue | Description |
|---|---|
| negotiatedRates | apx-control optional feature: agents may offer negotiated rate tables with pushNegotiatedRate (Part 6 §6.6; Annex A APX-CTL-09 and 10). |
| ticketMatching | apx-control optional feature: advisory match candidates at the lane and the matchTicket command (Part 6 §6.7; Annex A APX-CTL-11 and 12). |
| negotiatedAmounts | apx-control optional feature, offered only with negotiatedRates: pushNegotiatedRate may state any amount for the current ticket, with agent and reason required (Part 6 §6.6; Annex A APX-CTL-16). |
| cameraViews | apx-site-config optional feature: POST /v1/cameras/{id}/views issues short-lived live and snapshot links bound to the agent (Part 26 §26.4). |
| cameraPlayback | apx-site-config optional feature, offered only with cameraViews: a view of kind playback over a from/to range within the camera's retention (Part 26 §26.4). |
A.4.12 External code list "apx-interaction-outcomes"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-interaction-outcomes.json (Part 11).
Table A.204 -- Entries in the code list "apx-interaction-outcomes"
| definedValue | Description |
|---|---|
| resolved | The issue was resolved during the interaction, by an action or an answer. |
| vended | The gate or door was opened for the customer as the resolution. |
| transferred | The interaction was handed to another agent or system. |
| escalated | A manager, attendant or other role took over or was asked to act (see escalationContacts and ApprovalRequest). |
| noActionNeeded | The customer needed no assistance by the time the agent answered. |
| abandoned | The customer left or the contact ended before a resolution. |
| callbackScheduled | The customer will be called back; raises customerCallbackRequested when the site must do it. |
A.4.13 External code list "apx-issue-types"
Used by: Not referenced by a schema description. Seeds the APDS proposal SupportIssueTypeEnum (Tier 3). Published as an APDS UserDefinedCodeList at spec/registries/apx-issue-types.json (Part 11).
Table A.205 -- Entries in the code list "apx-issue-types"
| definedValue | Description |
|---|---|
| gateVendFailed | Customer paid or is entitled to exit but the gate did not open. |
| paymentDeclined | The customer's payment was declined or failed at the lane/pay station. |
| validationMissing | An expected validation/discount is not applied to the session. |
| rateDispute | The amount due does not match the expected rate calculation. |
| lostTicket | The customer cannot present the entry ticket. |
| passbackViolation | A credential was denied because of anti-passback state. |
| accountBalanceDenied | A monthly/account holder was denied because of an outstanding balance or account status. |
| reservationMismatch | A prepaid reservation exists but is not linked to the current session (wrong or unread plate, unscanned code). |
| plateUnresolved | The session has no plate or a low-confidence/incorrect plate association. |
| equipmentFault | A lane device (payment terminal, ticket reader, gate, intercom, camera) is offline or faulted. |
| unknown | The issue could not be classified from available signals. |
| noResponse | The help button was pressed or the number dialled, but nobody answered the agent. |
| callDropped | The contact ended before the issue was stated or resolved. |
| audioFault | The agent cannot hear the parker or the parker cannot hear the agent; a fault in the lane's call equipment. |
| generalInquiry | A question about rates, hours, directions or the facility, with no transaction problem. |
| wrongLocation | The parker is at the wrong garage, dialled the wrong number, or the vehicle does not fit. |
| facilityFull | No space is available for the arriving vehicle. |
| ticketUnreadable | The entry ticket is present but the device cannot read it (damaged, demagnetized, faded). |
| ticketNotAccepted | The device refuses or will not return a readable ticket, including a ticket stuck on cancel. |
| noTicketIssued | The entry station issued no ticket, typically because it is out of tickets (see DeviceStatus.consumables). |
| paidCannotExit | The ticket is paid, but the exit does not open; a payment-status lookup is the first step. |
| cardNotReading | The card reader does not read the payment card at all, as distinct from a decline. |
| paymentMethodUnavailable | The parker cannot pay with what they have (card-only device, no money, needs change). |
| mediaJam | A ticket, bill or card is jammed or stuck in the device. |
| gateStuckOpen | The barrier is stuck open and vehicles pass without a transaction. |
| credentialForgotten | A holder arrived without their card, transponder or fob. |
| credentialDisabled | The holder's credential is present but disabled or deactivated. |
| gracePeriod | A dispute about the grace period, for example a fee charged just after it ended. |
| validationExpired | A validation was applied but has expired, so an amount is due. |
| authorizedVisitor | A hotel guest, vendor, employee, police officer or security staff needing entry under the place's guest arrangements (resolve with guestReference). |
| receiptRequest | The customer needs a receipt sent or printed again (Part 13 receipt re-send). |
| refundRequest | The customer asks for a refund or credit (reason from apx-refund-reasons). |
| vehicleIncident | A vehicle was damaged, broken into or towed at the place; raises a damageReported alert. |
| equipmentTest | A technician testing the equipment, not a customer; excluded from service figures. |
A.4.14 External code list "apx-payment-line-codes"
Used by: PaymentDetail.lines. Seeds the APDS proposal PaymentTypeEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-payment-line-codes.json (Part 11).
Table A.206 -- Entries in the code list "apx-payment-line-codes"
| definedValue | Description |
|---|---|
| base | The parking charge before fees, taxes, and discounts; when a validation covers part of it, the part paid in money (the validation line carries the rest). A paymentType payment line (Part 13 §13.6a). |
| convenienceFee | A per-transaction fee the payment channel adds (an app, a text-to-pay vendor). A paymentType payment line. |
| serviceFee | A service fee the operator adds (valet, reservation). A paymentType payment line. |
| tax | Tax on the charge, when itemized. A paymentType payment line. |
| discount | A reduction other than a validation (a promotion, a negotiated rate): a paymentType payment line with a negative value. |
| validation | A validation applied to the ticket (Part 20): a paymentType validation line whose value is the amount the validation offset, outside the money collected (Part 13 §13.6a). |
| idle | An EV charging idle charge (Part 23 §23.5). A paymentType payment line. |
| energy | An EV charging energy charge (Part 23 §23.5). A paymentType payment line. |
A.4.15 External code list "apx-plate-list-categories"
Used by: PlateList.category. Seeds the APDS proposal PlateListCategoryEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-plate-list-categories.json (Part 11).
Table A.207 -- Entries in the code list "apx-plate-list-categories"
| definedValue | Description |
|---|---|
| allow | Credentials entitled at the listed places without a right of their own (service vehicles, exempt plates); a match counts as compliant where enforced. |
| watch | Credentials whose arrival the operator wants to know about; a match raises watchListArrival where alertOnArrival. |
| scofflaw | Credentials with unpaid notices or a standing refusal from the list owner; a match raises scofflawArrival and, where refuseService, refuses service at the lane. |
| enforcementVehicle | The list owner's own enforcement and service vehicles, whose visits are recorded but never enforced or screened. |
A.4.16 External code list "apx-read-review-reasons"
Used by: LprReadDetail.review.reasons. Seeds the APDS proposal ReadReviewReasonEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-read-review-reasons.json (Part 11).
Table A.208 -- Entries in the code list "apx-read-review-reasons"
| definedValue | Description |
|---|---|
| lowConfidence | The read's overall or plate confidence is below the place's review threshold. |
| noConfidence | The engine reported no confidence for the read. |
| jurisdictionRequiresReview | The jurisdiction requires a human to confirm a plate before enforcement. |
| ambiguousCharacters | The engine's alternate reads differ only in characters it commonly confuses (0/O, 1/I, 5/S, 8/B). |
| enforcementHandoff | The read is about to be handed to an enforcement system that requires reviewed evidence. |
| conflictingReads | Reads of the same passage (one captureGroup) disagree on the plate, country, or state/province. |
A.4.17 External code list "apx-refund-reasons"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-refund-reasons.json (Part 11).
Table A.209 -- Entries in the code list "apx-refund-reasons"
| definedValue | Description |
|---|---|
| changeNotDispensed | The device kept money it should have returned. |
| doubleCharge | The customer was charged twice for one stay. |
| overcharge | The amount taken exceeded what the rate or validation said was due. |
| serviceFailure | The customer paid for something the facility did not deliver (a reservation not honoured, a stay cut short by a fault). |
| courtesy | A goodwill refund with no fault found. |
A.4.18 External code list "apx-session-end-reasons"
Used by: SessionClosure.endReason. Seeds the APDS proposal SessionEndReasonEnum (Tier 1). Published as an APDS UserDefinedCodeList at spec/registries/apx-session-end-reasons.json (Part 11).
Table A.210 -- Entries in the code list "apx-session-end-reasons"
| definedValue | Description |
|---|---|
| exitRead | An exit read of the vehicle closed the Session. |
| reentry | The same plate entered again; the earlier Session was closed at the new entry. |
| stale | Closed by rule after no observation for the place's maximum stay; closure.rule names the rule and endInferred is true. |
| parentExit | An area Session closed because its parent visit ended. |
| areaLeft | An area Session closed because the vehicle was seen leaving the area. |
| inventorySweep | A sweep of the facility found the vehicle gone. |
| valetHandback | The valet handed the vehicle back (Part 22). |
| exitOnly | An exit with no observed entry; actualStart is synthetic and closure.startObserved is false. |
| operator | A person closed the Session. |
| review | A reviewer paired the exit read that closed the Session. |
A.4.19 External code list "apx-stay-compliance-flags"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-stay-compliance-flags.json (Part 11).
Table A.211 -- Entries in the code list "apx-stay-compliance-flags"
| definedValue | Description |
|---|---|
| paidAfterExit | A payment for the stay arrived after the vehicle left. |
| matchedFuzzy | A right or payment was matched to the stay on an inexact plate match (Part 5 §5.8 rule 5). |
| endInferred | The stay's end was set by a rule, not observed (Part 5 §5.8 rule 3). |
| onList | The plate was on a plate list at the place during the stay (Part 24). |
| paid | A payment covered part of the stay; set beside a status such as lateStart whose coverage began too late. |
A.4.20 External code list "apx-stay-compliance-statuses"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-stay-compliance-statuses.json (Part 11).
Table A.212 -- Entries in the code list "apx-stay-compliance-statuses"
| definedValue | Description |
|---|---|
| unscored | Family: withheld. No evaluation has run for the stay yet. |
| stale | Family: withheld. An open stay with no further read, closed with an inferred end; left out of compliance rates. |
| fromList | Family: compliant. Exempt by a plate list entry (Part 24) that covered the entry time. |
| permit | Family: compliant. Covered by rights, and a permit contributed to the coverage. |
| reservation | Family: compliant. Covered by rights, and a reservation contributed to the coverage (no permit did). |
| paid | Family: compliant. Covered by payments only. |
| grace | Family: compliant. Nothing paid, and the whole stay fell within the grace (Part 19 §19.10 rule 7). |
| valet | Family: compliant. The stay was in a valet area that is not enforced. |
| earlyArrival | Family: violation. Arrived before a reservation's start, beyond its early grace, and the time before the start was not otherwise covered. |
| reservationOverstay | Family: violation. Stayed past a reservation's end by more than the grace, and the time after it was not otherwise covered. |
| unpaid | Family: violation. Closed, nothing paid, and the stay was longer than the grace. |
| lateStart | Family: violation. Coverage began more than the entry grace after entry, or, while the stay is open, has not begun at all. |
| overstay | Family: violation. Coverage began in time, but the stay outlasted it by more than the exit grace. |
| policyOverstay | Family: violation. Longer than the place's maximum stay. Never overrides fromList. |
| reviewRequired | Family: withheld. Would be a violation, but a person must look first; pendingStatus names which (Part 5 §5.9 rule 2). |
| paidLate | Family: other. Paid after exit, settling the amount: paid, but not compliant. |
A.4.21 External code list "apx-toll-dispute-reasons"
Used by: TollTransaction.dispute.reason, TollDisputeOpen.reason. Seeds the APDS proposal TollDisputeReasonEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-toll-dispute-reasons.json (Part 11).
Table A.213 -- Entries in the code list "apx-toll-dispute-reasons"
| definedValue | Description |
|---|---|
| wrongVehicle | The charged vehicle is not the disputing party's (misread or cloned plate). |
| duplicateCharge | The same passage was charged more than once. |
| wrongClass | The vehicle class used for pricing is wrong. |
| notLiable | The party is not liable for the passage (exempt vehicle, sold or stolen vehicle, rental transfer). |
| other | Any other reason; the dispute detail explains it. |
A.4.22 External code list "apx-toll-dispute-resolutions"
Used by: TollTransaction.dispute.resolution, TollDisputeResolution.resolution. Seeds the APDS proposal TollDisputeResolutionEnum (Tier 2). Published as an APDS UserDefinedCodeList at spec/registries/apx-toll-dispute-resolutions.json (Part 11).
Table A.214 -- Entries in the code list "apx-toll-dispute-resolutions"
| definedValue | Description |
|---|---|
| upheld | The charge stands as priced. |
| refunded | The money is returned; the transaction is settled by the refund (Part 13 §13.1a). |
| adjusted | A new amount is owed; the resolution carries adjustedPricing and the original is kept in dispute.originalPricing. |
| withdrawn | The disputing party abandoned the dispute; the charge stands. |
A.4.23 External code list "apx-topics"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-topics.json (Part 11).
Table A.215 -- Entries in the code list "apx-topics"
| definedValue | Description |
|---|---|
| apx.control.command.status.v1 | A command transitioned lifecycle state (data: Command). |
| apx.control.device.state.v1 | A device changed state (data: DeviceStatus). |
| apx.alert.raised.v1 | An alert was raised (data: Alert). |
| apx.alert.status.v1 | An alert changed lifecycle state (data: Alert). |
| apx.reservation.noshow.v1 | A reservation reached its no-show condition (data: ReservationSummary; subject: the AssignedRight). |
| apx.tolling.transaction.created.v1 | A toll transaction was created (data: TollTransaction). |
| apx.tolling.transaction.status.v1 | A toll transaction changed status, including disputes (data: TollTransaction). |
| apx.subscription.failed.v1 | A subscription exhausted its retry schedule and was marked failed (data: SubscriptionFailure; subject: the subscription, className ApxEventSubscription). |
| apx.data.occupancy.v1 | Occupancy changed materially for a place element — threshold crossing or publisher-defined delta (data: OccupancySnapshot). |
| apx.accounts.payment.recorded.v1 | A payment was recorded — taken via /v1/payments or ingested from a lane device (data: PaymentRecord). Fills the financial-analytics gap: APDS EventTypeEnum has no payment events. |
| apx.data.observation.created.v1 | A new Observation was ingested — LPR read, RFID hit, sensor event (data: the APDS ObservationElement, one event per element; subject references it; elementIds carries the lane or place). Fills the sensor-analytics gap: APDS EventTypeEnum has no Observation events. |
| apx.resolution.context.created.v1 | A resolution context was created or materially recomputed (data: ResolutionContext) — enables event-driven preloading so agent consoles pop before the call is answered. |
| apx.support.interaction.recorded.v1 | A support interaction was recorded or updated (data: SupportInteraction). |
| apx.violations.detected.v1 | A violation candidate was recorded from automated, guided, or manual detection (data: Violation) — drives guided-enforcement handheld queues. |
| apx.violations.issued.v1 | A notice, warning, or citation was issued on a violation (data: Violation). |
| apx.violations.status.v1 | A violation changed lifecycle state — review, payment, appeal open/resolve, void (data: Violation). |
| apx.validations.redeemed.v1 | A validation was applied to a ticket/session from any channel, or reversed (data: ValidationRedemption). |
| apx.validations.program.status.v1 | A validation program was enrolled, suspended, resumed, or ended (data: ValidationProgram). |
| apx.validations.statement.closed.v1 | A merchant billing period was closed into an immutable statement (data: ValidationStatement). |
| apx.credentials.status.v1 | A credential was issued, activated, suspended, resumed, reported lost, revoked, expired, or replaced (data: CredentialRecord). |
| apx.credentials.access.v1 | A credential was presented at a lane and access was granted or denied (data: AccessEvent; a CredentialAccessEvent whenever a record matched, Part 21 §21.4). Fills the gap: APDS EventTypeEnum has no access events. |
| apx.valet.ticket.status.v1 | A valet ticket changed lifecycle state — dropped, parked, retrieving, staged, handed back, closed, cancelled (data: ValetTicket). |
| apx.valet.retrieval.requested.v1 | A customer or attendant requested a valeted vehicle; carries channel, ETA, and promised time (data: ValetTicket) — drives runner boards and customer notifications. |
| apx.permits.pool.availability.v1 | A permit pool's issued count or capacity changed (data: PoolAvailability; subject: the RightSpecification). Optional for apx-permits (Part 14 §14.2c). |
| apx.data.observation.updated.v1 | An ingested Observation was replaced through native PUT /observations/{id} — e.g. the LPR system revised accessEvent (data: the APDS ObservationElement as it now stands; subject and elementIds place binding as for apx.data.observation.created.v1; consumers keep the highest version). Required for apx-lpr (Part 13 §13.4). |
| apx.charging.session.status.v1 | A ChargingSession transitioned lifecycle state — authorized, pluggedIn, charging, suspended, complete, idle, unplugged, closed, cancelled, faulted (data: ChargingSession; place-bound on ChargingSession.place). Required for apx-charging (Part 23 §23.12). |
| apx.charging.idle.started.v1 | A ChargingSession entered idle after its idlePolicy grace elapsed with the cable still connected; carries the idle policy and the minimized vehicle summary (data: ChargingSession) — drives the customer's move-your-car notification and the Part 19 enforcement hook. Required for apx-charging (Part 23 §23.2, §23.10). |
| apx.charging.point.status.v1 | A charging point's availability or bay presence changed (data: ChargingPointStatus; place-bound on ChargingPointStatus.place). Required for apx-charging (Part 23 §23.1, §23.3). |
| apx.platelists.changed.v1 | A plate list or one of its entries was created, changed, or removed (data: PlateList with entryCount; subject: the list). Consumers resync entries through the Part 5 feed on /v1/plate-lists/{id}/entries. Required for apx-plate-lists (Part 24 §24.3). |
| apx.ui.launch.changed.v1 | A UI launch was issued, opened, closed, or expired (data: UiLaunch without url; subject: the launch; place-bound on UiLaunch.place). Required for apx-ui-launch (Part 25 §25.3). |
| apx.ui.action.recorded.v1 | An action done in a launched vendor screen was recorded as a UiActionRecord because no native resource could express it (data: UiActionRecord; subject: the launch; carries the launch's correlationId). Required for apx-ui-launch (Part 25 §25.4). |
| apx.equipment.changed.v1 | A piece of equipment or its APX decorations (equipment-detail, camera, external-ids) was added, changed, or removed (data: EquipmentRecord; subject: the SupplementalEquipment; place-bound). Lets other systems stay in sync without re-reading the place. Required for apx-site-config (Part 26 §26.7). |
| apx.commspoints.changed.v1 | A comms point was added, changed, or removed (data: CommsPoint; subject: the comms point; place-bound). Required for apx-site-config (Part 26 §26.7). |
| apx.approvals.changed.v1 | An approval request was created, decided, or expired (data: ApprovalRequest; subject: the request; place-bound). An approver's system subscribes to it for its queue. Required for apx-resolution when approvals are offered (Part 17 §17.8). |
| apx.displays.shown.v1 | A sign showed a message and the system that drove it recorded it (data: DisplayRecord; subject: the display; place-bound on its place). Carries no message text and no plate. Required for apx-site-config (Part 26 §26.9). |
A.4.24 External code list "apx-ui-surfaces"
Used by: Not referenced by a schema description. Published as an APDS UserDefinedCodeList at spec/registries/apx-ui-surfaces.json (Part 11).
Table A.216 -- Entries in the code list "apx-ui-surfaces"
| definedValue | Description |
|---|---|
| lane.console | The vendor's lane console: the transaction in the machine, the devices, and the actions an agent takes at a lane. Subject: VehicularAccess. |
| session.detail | One parking session, its reads, payments and validations. Subject: Session. |
| reservation.detail | One reservation, with redeem, amend and cancel. Subject: AssignedRight (the reservation). |
| reservation.search | Find a reservation by code, plate, name or time. General surface, no subject. |
| lpr.read.review | Review and correct one plate read. Subject: Observation. |
| violation.detail | One violation, its evidence and status. Subject: Violation. |
| violation.appeal | Open or decide an appeal on a violation. Subject: Violation. |
| validation.redeem | Apply a validation to the current session or ticket. Subject: Session. |
| credential.detail | One credential and its holder, with suspend, resume and replace. Subject: CredentialRecord. |
| toll.transaction | One toll transaction and its payment. Subject: TollTransaction. |
| toll.dispute | Open or resolve a dispute on a toll transaction. Subject: TollTransaction. |
| valet.ticket | One valet ticket: position, keys, retrieval and handback. Subject: ValetTicket. |
| charging.session | One charging session and its charger. Subject: ChargingSession. |
| place.console | The vendor's console for one place: lanes, devices, counts. Subject: HierarchyElement (the place). |
| module.home | The vendor's home screen for a module, with no subject. General surface. |
A.4.25 External code list "apx-violation-types"
Used by: Violation.violationType, EligibilityResult.suggestedViolationType, ViolationSource.violationCode, ViolationImport.violationType. Seeds the APDS proposal ViolationTypeEnum (Tier 1). Published as an APDS UserDefinedCodeList at spec/registries/apx-violation-types.json (Part 11).
Table A.217 -- Entries in the code list "apx-violation-types"
| definedValue | Description |
|---|---|
| noValidRight | No AssignedRight or paid Session covers the vehicle at the place at the observed time. |
| expiredRight | The nearest AssignedRight or Session covering the vehicle has ended (overstay past the paid/permitted time). |
| notYetValidRight | The vehicle's right exists but its validity has not started (early arrival on a reservation or future-dated permit). |
| wrongPlace | The vehicle holds a right for a different HierarchyElement (wrong zone, level, lot, or space). |
| maximumStayExceeded | The stay exceeds the place's maximum-stay operating restriction regardless of payment. |
| restrictedSpace | The vehicle occupies a space it is not eligible for (accessible, EV charging, loading, reserved, permit-only). |
| permitMisuse | A permit or credential is presented by a vehicle it was not issued to, or is suspended, cloned, or otherwise invalid. |
| noParkingPeriod | The vehicle is parked during a period when the place is closed to parking (street cleaning, event closure, tow-away window). |
| obstruction | The vehicle obstructs a lane, access, exit, hydrant, or another space. |
| other | A violation class not otherwise listed; the notice text carries the specifics. |
| chargingBayIdle | A vehicle remained connected in an EV charging bay after charging completed beyond the posted idle limit (Part 23 §23.10); evidenced by the ChargingSession and the bay Observation. |
Annex B (informative) APDS 4.1 classes used by APX
APX carries 204 classes, datatypes and enumerations from the APDS 4.1 API document unchanged in meaning. Their definitions are in the APDS 4.1 Data Dictionary and are not repeated here. Where the APX overlay changes the published schema, the change is named. Additions are optional extension points (Part 10). Corrections work around the errata in 06, Part A.
| APDS name | APDS domain | How APX uses it |
|---|---|---|
| AccessAndEgress | PkCommon | Used as published |
| AccessAndEgressPeriods | PkCommon | Used as published |
| AccessAndEgressTypeEnum | PkCommon | Used as published |
| AccessAndEgressValidity | PkCommon | Used as published |
| AccessibilityTypeEnum | Place | Used as published |
| Address | Place | Used as published |
| AddressLine | Place | Used as published |
| AddressLineTypeEnum | Place | Used as published |
| AmountInCurrency | Rates | Used as published |
| AreaDimension | Place | Used as published |
| AssignRightTime | Rates | Used as published |
| AssignedRight | Right | APX overlay adds extensions |
| AssignedRightHolder | Right | Used as published |
| AssignedRightList | Right | Used as published |
| AssignedRightTimeRelative | Rates | Used as published |
| AuthenticationAndIdentificationEnum | EnergyInfrastructure | Used as published |
| BrandsAcceptedCodeList | Rates | Used as published |
| BrandsAcceptedText | Rates | Used as published |
| CalculationTypeEnum | Occupancy | Used as published |
| Campus | Place | Used as published |
| CharacterConfidence | Observation | Used as published |
| ComparisonOperatorEnum | PkCommon | Used as published |
| Confidence | Observation | Used as published |
| ConnectorTypeEnum | EnergyInfrastructure | Used as published |
| Contact | PkCommon | Used as published |
| ContactByReference | PkCommon | Used as published |
| ContactDetails | PkCommon | Used as published |
| ContactPoint | PkCommon | APX overlay adds extensions |
| ContactPointTypeEnum | PkCommon | Used as published |
| ContactTypeEnum | PkCommon | Used as published |
| CountryCode | PkCommon | Used as published |
| CoveredTypeEnum | Place | Used as published |
| Credential | Right | Used as published |
| CredentialAssigned | Right | Used as published |
| CredentialAssignedTypeEnum | Right | Used as published |
| CredentialTypeEnum | Right | Used as published |
| CurrencyCode | PkCommon | Used as published |
| CustomerCredential | Right | Used as published |
| DateTime | PkCommon | Used as published |
| DayEnum | PkCommon | Used as published |
| DayWeekMonth | PkCommon | Used as published |
| DeletedReference | PkCommon | Used as published |
| DeliveryUnitEnum | EnergyInfrastructure | Used as published |
| DemandSpaceType | Occupancy | Used as published |
| DemandTable | Occupancy | Used as published |
| DemandType | Occupancy | Used as published |
| Duration | PkCommon | Used as published |
| PkCommon | Used as published | |
| EMailCommonData | PkCommon | Used as published |
| Eligibility | Rates | Used as published |
| EmailTypeEnum | PkCommon | Used as published |
| Emissions | Rates | Used as published |
| EntranceOpenTime | PkCommon | Used as published |
| EquipmentTypeEnum | EnergyInfrastructure | Used as published |
| EventData | PkCommon | Used as published |
| EventTypeEnum | PkCommon | Used as published |
| ExitOpenTime | PkCommon | Used as published |
| FinancialQuote | Quote | Used as published |
| FuelTypeEnum | Rates | Used as published |
| GeoJsonObject | PkCommon | APX overlay adds coordinates |
| GrossWeightCharacteristic | Rates | Used as published |
| HeightCharacteristic | Rates | Used as published |
| HierarchyElement | Place | APX overlay adds extensions |
| HierarchyElementList | Place | Used as published |
| HierarchyElementRecord | Place | Used as published |
| HierarchyElementReference | Place | Used as published |
| HierarchyElementTypeEnum | Place | Used as published |
| IdentifiedArea | Place | Corrected by the APX overlay (see 06, Part A) |
| Identifiers | Quote | APX overlay adds rateTableId |
| Image | Observation | Used as published |
| ImageAlbum | PkCommon | Used as published |
| ImageTypeEnum | Observation | Used as published |
| IssueMethodTypeEnum | Right | Used as published |
| LanguageCode | PkCommon | Used as published |
| LengthCharacteristic | Rates | Used as published |
| LinearDimension | Place | Used as published |
| LinkedRightSpecification | Rates | Used as published |
| Location | Observation | Corrected by the APX overlay (see 06, Part A) |
| LowEmissionLevelEnum | Rates | Used as published |
| Marketing | PkCommon | Used as published |
| MaximumDimensions | Place | Used as published |
| MeansOfPaymentEnum | Rates | Used as published |
| MonetaryValue | Rates | Used as published |
| MonthEnum | PkCommon | Used as published |
| MultilingualString | PkCommon | Used as published |
| ObservationDataType | Observation | Used as published |
| ObservationElement | Observation | APX overlay adds extensions |
| ObservationSet | Observation | APX overlay adds extensions |
| ObservationTypeEnum | Observation | Used as published |
| OccupancyLevel | Occupancy | Used as published |
| OperatingModeTypeEnum | Place | Used as published |
| OperatingRestrictionTypeEnum | Place | Used as published |
| OperatingRestrictions | Place | Used as published |
| OperatingTime | PkCommon | Used as published |
| Option | Quote | Used as published |
| OtherCredential | Right | Used as published |
| OtherSpecialDay | PkCommon | Used as published |
| OverallPeriod | PkCommon | Used as published |
| OverpaymentPolicyTypeEnum | Right | Used as published |
| PaginatedList | PkCommon | Used as published |
| PaginatedListMeta | PkCommon | Used as published |
| ParkingSpaceOccupancyDetectionEnum | Occupancy | Used as published |
| Payment | Rates | APX overlay adds extensions |
| PaymentLine | Rates | Used as published |
| PaymentMethod | Rates | Used as published |
| PaymentTimingEnum | Rates | Used as published |
| PaymentTypeEnum | Rates | Used as published |
| Period | PkCommon | Used as published |
| PeriodsAlias | PkCommon | Used as published |
| PeriodsOrValidity | PkCommon | Used as published |
| PeriodsOrValidityTypeEnum | PkCommon | Used as published |
| Place | Place | Corrected by the APX overlay (see 06, Part A) |
| PlaceCharacteristics | Place | Used as published |
| PlaceInformation | Place | Used as published |
| PlannedUse | Right | Used as published |
| PublicHoliday | PkCommon | Used as published |
| Qualification | Rates | Used as published |
| QuoteExpiration | Quote | Used as published |
| QuoteRightRequest | Quote | Used as published |
| QuoteRightResponse | Quote | Used as published |
| QuoteRightResponseExtensionReasonEnum | Quote | Used as published |
| QuoteSessionExtensionRequest | Quote | Used as published |
| QuoteSessionExtensionResponse | Quote | Used as published |
| RGBColour | PkCommon | Used as published |
| RateAvailabilityTypeEnum | Rates | Used as published |
| RateDiscount | Rates | Used as published |
| RateEligibility | Rates | Used as published |
| RateLine | Rates | Used as published |
| RateLineCollection | Rates | Used as published |
| RateLineTax | Rates | Used as published |
| RateLineTypeEnum | Rates | Used as published |
| RateTable | Rates | APX overlay adds extensions |
| RateTableList | Rates | Used as published |
| RateTransition | Right | Used as published |
| RateTypeEnum | Rates | Used as published |
| RateUsageConditionsTypeEnum | Rates | Used as published |
| Reference | PkCommon | Used as published |
| ReferenceQuoteExtension | Quote | Used as published |
| ReferenceQuoteNew | Quote | Used as published |
| ReferenceToQuote | Quote | Used as published |
| ReferencedCodeListEntry | PkCommon | Used as published |
| ReferencedRightSpecification | Quote | Used as published |
| RefillPoint | EnergyInfrastructure | Used as published |
| RelativeOffsets | PkCommon | Used as published |
| RelativeTimes | PkCommon | Used as published |
| ReservationTypeEnum | EnergyInfrastructure | Used as published |
| ResponseReasonEnum | Quote | Used as published |
| ResponseStatus | PkCommon | Used as published |
| ResponseStatusEnum | PkCommon | Used as published |
| ResponsibilityRoleAssignment | PkCommon | Used as published |
| RightPool | Right | Used as published |
| RightPoolRelativeValidity | Right | Used as published |
| RightSpecification | Right | APX overlay adds extensions |
| RightSpecificationList | Right | Used as published |
| RightSpecificationTypeEnum | Right | Used as published |
| SafetyStandardClassification | Place | Used as published |
| Segment | Session | Used as published |
| ServiceTypeEnum | EnergyInfrastructure | Used as published |
| Session | Session | APX overlay adds extensions |
| SessionList | Session | Used as published |
| Space | Place | Corrected by the APX overlay (see 06, Part A) |
| SpaceDimension | Place | Used as published |
| SpecialDay | PkCommon | Used as published |
| SpecialDayTypeEnum | PkCommon | Used as published |
| SpecificLanguageString | PkCommon | Used as published |
| StaffEnum | Place | Used as published |
| StructureGradeEnum | Place | Used as published |
| StructureTypeEnum | Place | Used as published |
| SupplementalEquipment | Place | Used as published |
| SupplementalFacility | Place | Used as published |
| Supply | Occupancy | Used as published |
| SupplyViewTypeEnum | Occupancy | Used as published |
| TelephoneContact | PkCommon | Used as published |
| Time | PkCommon | Used as published |
| TimePeriodOfDay | PkCommon | Used as published |
| TimeUnitRelativeEnum | PkCommon | Used as published |
| Times | PkCommon | Used as published |
| TimesOfDay | PkCommon | Used as published |
| TriggerTypeEnum | Rates | Used as published |
| UnitOfMeasureAreaEnum | Place | Used as published |
| UnitOfMeasureDistanceEnum | Place | Used as published |
| UnitOfMeasureEnum | Rates | Used as published |
| UnitOfMeasureWeightEnum | Place | Used as published |
| UnitOfTimeEnum | PkCommon | Used as published |
| Units | PkCommon | Used as published |
| Url | PkCommon | Used as published |
| UserQualification | Rates | Used as published |
| UserTypeEnum | Place | Used as published |
| Validity | PkCommon | Used as published |
| ValidityAlias | PkCommon | Used as published |
| ValidityStatusEnum | PkCommon | Used as published |
| ValueRange | PkCommon | Used as published |
| ValueRangeBoundary | PkCommon | Used as published |
| ValueRangeClassEnum | Rates | Used as published |
| VehicleAncillaryIdentification | PkCommon | Used as published |
| VehicleCredential | Right | Used as published |
| VehicleLoadTypeEnum | Rates | Used as published |
| VehicleTypeEnum | Rates | Used as published |
| VersionedIdentity | PkCommon | Used as published |
| VersionedReference | PkCommon | Used as published |
| WeekOfMonthEnum | PkCommon | Used as published |
| WeightDimension | Place | Used as published |
| WeightTypeEnum | Rates | Used as published |
| WidthCharacteristic | Rates | Used as published |
Annex C (informative) APX elements proposed to APDS
Each row links an APX class to the APDS data element proposed from it. The full proposals, in APDS Data Dictionary format, are in docs/apds-submission/03-data-dictionary.md; 06 Requests to APDS summarizes them.
| APX class | Proposed APDS element | Change | APDS domain | Tier |
|---|---|---|---|---|
| AccessEvent | AccessEvent | new class | Session | 1 |
| AccessEvent | AccessOutcomeEnum | new enumeration | Session | 1 |
| Account | RightHolder | extends APDS RightHolder | Right | 2 |
| Account | AccountStatusEnum | new enumeration | Right | 2 |
| Alert | Alert | new class | Operations | 2 |
| Alert | AlertSeverityEnum | new enumeration | Operations | 2 |
| Alert | AlertStatusEnum | new enumeration | Operations | 2 |
| AttributeRead | AttributeRead | new class | Observation | 1 |
| CameraDetail | Camera | new class | Place | 2 |
| CameraDetail | CameraMountingEnum | new enumeration | Place | 2 |
| CameraDetail | CameraViewEnum | new enumeration | Place | 2 |
| ChargingBayPresence | ChargingBayPresence | new class | EnergyInfrastructure | 3 |
| ChargingBayPresence | BayPresenceEnum | new enumeration | EnergyInfrastructure | 3 |
| ChargingBayPresence | BayPresenceSourceEnum | new enumeration | EnergyInfrastructure | 3 |
| ChargingPointStatus | ChargingPointStatus | new class | EnergyInfrastructure | 3 |
| ChargingPointStatus | ConnectorStatus | new class | EnergyInfrastructure | 3 |
| ChargingSession | ChargingSession | new class | EnergyInfrastructure | 3 |
| ChargingSession | ChargingCost | new class | EnergyInfrastructure | 3 |
| ChargingSession | ChargingIdleTerms | new class | EnergyInfrastructure | 3 |
| ChargingSession | ChargingSessionStatusEnum | new enumeration | EnergyInfrastructure | 3 |
| ChargingSession | ChargingStopReasonEnum | new enumeration | EnergyInfrastructure | 3 |
| ChargingSession | ChargingSettlementModeEnum | new enumeration | EnergyInfrastructure | 3 |
| CommsPoint | CommsPoint | new class | Place | 3 |
| ConditionReport | ConditionReport | new class | Observation | 2 |
| ConditionReport | DamageItem | new class | Observation | 2 |
| ConditionReport | DamageSeverityEnum | new enumeration | Observation | 2 |
| CredentialRecord | CredentialAssigned | extends APDS CredentialAssigned | Right | 1 |
| CredentialRecord | CredentialMedia | new class | Right | 1 |
| CredentialRecord | CredentialSuspension | new class | Right | 1 |
| CredentialRecord | CredentialStatusEnum | new enumeration | Right | 1 |
| CredentialRecord | CredentialMediaFormEnum | new enumeration | Right | 1 |
| CredentialRecord | DepositStatusEnum | new enumeration | Right | 1 |
| DeviceStatus | EquipmentStatus | new class | Place | 1 |
| EnforcementPolicy | EnforcementPolicy | new class | Enforcement | 2 |
| EnforcementPolicy | NoticeDeliveryRule | new class | Enforcement | 2 |
| EnforcementPolicy | PenaltyLimit | new class | Enforcement | 3 |
| EnforcementPolicy | EscalationStep | new class | Enforcement | 2 |
| EquipmentDetail | SupplementalEquipment | extends APDS SupplementalEquipment | Place | 2 |
| LaneCameras | VehicularAccess | extends APDS VehicularAccess | Place | 2 |
| LaneCameras | LaneCamera | new class | Place | 2 |
| LaneCameras | CameraFacingEnum | new enumeration | Place | 2 |
| LprRead | ImageTypeEnum | extends APDS ImageTypeEnum | Observation | 2 |
| LprReadDetail | ObservationElement | extends APDS ObservationElement | Observation | 1 |
| LprReadDetail | AlternateRead | new class | Observation | 1 |
| LprReadDetail | ReadReview | new class | Observation | 2 |
| LprReadDetail | Image | extends APDS Image | Observation | 2 |
| LprReadDetail | ImageRegion | new class | Observation | 2 |
| LprReadDetail | ReadAttributeEnum | new enumeration | Observation | 1 |
| LprReadDetail | VehicleMovementEnum | new enumeration | Observation | 1 |
| LprReadDetail | PlateFaceEnum | new enumeration | Observation | 2 |
| LprReadDetail | ReadReviewStateEnum | new enumeration | Observation | 2 |
| MatchEvidence | MatchEvidence | new class | Session | 3 |
| MatchEvidence | MatchTypeEnum | new enumeration | Session | 3 |
| MatchEvidence | MatchDecisionEnum | new enumeration | Session | 3 |
| OccupancyHistoryPage | DemandType | extends APDS DemandType | Occupancy | 3 |
| PaymentDetail | RateSold | new class | Right | 3 |
| PaymentDetail | RateProductEnum | new enumeration | Right | 3 |
| PaymentDetail | RateClassEnum | new enumeration | Right | 3 |
| PaymentRecord | Payment | extends APDS Payment | Right | 2 |
| PaymentRecord | PaymentStatusEnum | new enumeration | Right | 2 |
| PaymentRecord | CaptureStatusEnum | new enumeration | Right | 2 |
| PermitExtension | OverageBilling | new class | Right | 2 |
| PermitExtension | OverageBillingModeEnum | new enumeration | Right | 2 |
| PlateList | PlateList | new class | Right | 2 |
| PlateListEntry | PlateListEntry | new class | Right | 2 |
| PlateListPlaceFlags | PlateListPlaceFlags | new class | Right | 2 |
| PresentedCredential | PresentedCredential | new class | Right | 1 |
| RatePolicy | RateTable | extends APDS RateTable | Rates | 2 |
| RecordInfo | RecordType | extends APDS RecordType | PkCommon | 3 |
| ReservationExtension | AssignedRight | extends APDS AssignedRight | Right | 2 |
| ReservationExtension | ReservationStateEnum | new enumeration | Right | 2 |
| SessionClosure | SessionClosure | new class | Session | 1 |
| SessionDetail | Session | extends APDS Session | Session | 1 |
| SessionDetail | SessionLifecycleEnum | new enumeration | Session | 2 |
| SessionReadBinding | SessionRead | new class | Session | 1 |
| SessionReadBinding | SessionReadRoleEnum | new enumeration | Session | 1 |
| Signage | Signage | new class | Place | 2 |
| Signage | SignTypeEnum | new enumeration | Place | 2 |
| SupportInteraction | SupportInteraction | new class | Operations | 3 |
| SupportInteraction | SupportAgentTypeEnum | new enumeration | Operations | 3 |
| TollTransaction | TollTransaction | new class | Observation | 2 |
| TollTransaction | TollDispute | new class | Observation | 2 |
| TollTransaction | TollTransactionStatusEnum | new enumeration | Observation | 2 |
| ValetTicket | RightTypeEnum | extends APDS RightTypeEnum | Right | 2 |
| ValetTicket | ValetTicket | new class | Session | 2 |
| ValetTicket | ValetStatusEnum | new enumeration | Session | 2 |
| ValetTicket | HandbackVerificationEnum | new enumeration | Session | 2 |
| ValidationBenefit | ValidationBenefit | new class | Rates | 2 |
| ValidationInstrument | ValidationInstrument | new class | Right | 2 |
| ValidationInstrument | ValidationInstrumentStatusEnum | new enumeration | Right | 2 |
| ValidationIssuance | ValidationIssuance | new class | Right | 2 |
| ValidationIssuance | ValidationIssuanceMethodEnum | new enumeration | Right | 2 |
| ValidationIssuance | ValidationIssuanceStatusEnum | new enumeration | Right | 2 |
| ValidationProgram | ValidationProgram | new class | Right | 2 |
| ValidationProgram | ValidationRules | new class | Right | 2 |
| ValidationProgram | ValidationBilling | new class | Right | 3 |
| ValidationProgram | ValidationBillingModelEnum | new enumeration | Right | 3 |
| ValidationProgram | ValidationBillingCycleEnum | new enumeration | Right | 3 |
| ValidationRedemption | ValidationRedemption | new class | Session | 1 |
| ValidationRedemption | ValidationRedemptionStatusEnum | new enumeration | Session | 1 |
| Violation | Violation | new class | Enforcement | 1 |
| Violation | Notice | new class | Enforcement | 1 |
| Violation | Appeal | new class | Enforcement | 2 |
| Violation | ViolationStatusEnum | new enumeration | Enforcement | 1 |
| Violation | NoticeKindEnum | new enumeration | Enforcement | 1 |
| Violation | NoticeDeliveryMethodEnum | new enumeration | Enforcement | 1 |
| Violation | AppealReasonEnum | new enumeration | Enforcement | 2 |
| Violation | AppealResolutionEnum | new enumeration | Enforcement | 2 |
| ViolationDetection | ViolationDetection | new class | Enforcement | 1 |
| ViolationDetection | DetectionModeEnum | new enumeration | Enforcement | 1 |