@sphereon/ssi-sdk.sd-jwt 0.32.1-next.54 → 0.33.1-feature.vcdm2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-handler.d.ts.map +1 -1
- package/dist/action-handler.js +246 -247
- package/dist/action-handler.js.map +1 -1
- package/dist/defaultCallbacks.d.ts +2 -2
- package/dist/defaultCallbacks.d.ts.map +1 -1
- package/dist/defaultCallbacks.js +12 -50
- package/dist/defaultCallbacks.js.map +1 -1
- package/dist/index.js +3 -21
- package/dist/index.js.map +1 -1
- package/dist/trustAnchors.js +2 -5
- package/dist/trustAnchors.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -8
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +15 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +32 -52
- package/dist/utils.js.map +1 -1
- package/package.json +20 -20
- package/src/__tests__/resources/BoardingPassCredential-vct.json +196 -0
- package/src/__tests__/resources/LoyaltyProgram Account VC Schema V0.1 sd-jwt-schema.json +97 -0
- package/src/__tests__/resources/LoyaltyProgramAccountCredential-vct.json +126 -0
- package/src/__tests__/resources/boarding Pass VC Schema V1.0 sd-jwt.json +156 -0
- package/src/__tests__/resources/boardingpass-logo.png +0 -0
- package/src/__tests__/resources/boardingpass.svg +1 -0
- package/src/__tests__/resources/e-passport.svg +1 -0
- package/src/__tests__/resources/ePassport VC Schema V1.0.sd-jwt.json +226 -0
- package/src/__tests__/resources/ePassportCredential-vct.json +226 -0
- package/src/__tests__/resources/epassport-logo.png +0 -0
- package/src/__tests__/resources/loyaltyprogramaccount-icon.png +0 -0
- package/src/__tests__/resources/loyaltyprogramaccount.png +0 -0
- package/src/__tests__/resources/loyaltyprogramaccount.svg +1 -0
- package/src/__tests__/resources/travel-agency VC Employee v0.1 sd-jwt-schema.json +115 -0
- package/src/__tests__/resources/travel-agency-EmployeeAgencyCredential-vct.json +146 -0
- package/src/__tests__/resources/travel-agency-vc-employee-logo.png +0 -0
- package/src/__tests__/resources/travel-agency-vc-employee.svg +1 -0
- package/src/__tests__/sd-jwt-integrity.test.ts +100 -0
- package/src/__tests__/sd-jwt.test.ts +4 -4
- package/src/action-handler.ts +51 -18
- package/src/defaultCallbacks.ts +5 -4
- package/src/types.ts +4 -4
- package/src/utils.ts +48 -4
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Boarding Pass Verifiable Credential",
|
|
3
|
+
"schema_uri": "https://iata.trustregistry.nborbit.ca/.well-known/schema/boardingpass.json",
|
|
4
|
+
"schema_uri#integrity": "sha256-LCPRPfq0BCFVgW469g8F58ng0Nti1RL0+pir1hcQRa8",
|
|
5
|
+
"vct": "https://iata.trustregistry.nborbit.ca/boardingpass",
|
|
6
|
+
"description": "A Verifiable Credential for a boarding pass.",
|
|
7
|
+
"display": [
|
|
8
|
+
{
|
|
9
|
+
"description": "A Verifiable Credential for a boarding pass.",
|
|
10
|
+
"lang": "en-US",
|
|
11
|
+
"name": "Boarding Pass Verifiable Credential",
|
|
12
|
+
"rendering": {
|
|
13
|
+
"simple": {
|
|
14
|
+
"background_color": "#DCA604",
|
|
15
|
+
"logo": {
|
|
16
|
+
"alt_text": "Boarding Pass Verifiable Credential Logo",
|
|
17
|
+
"uri": "https://iata.trustregistry.nborbit.ca/logo/boardingpass-logo.png",
|
|
18
|
+
"uri#integrity": "sha256-yu/K3O9TvEETXU58un2eMlfwWS4UnTryO9dOeIJihtM"
|
|
19
|
+
},
|
|
20
|
+
"text_color": "#F9F9F9"
|
|
21
|
+
},
|
|
22
|
+
"svg_template": {
|
|
23
|
+
"properties": {
|
|
24
|
+
"color_scheme": "light",
|
|
25
|
+
"contrast": "high",
|
|
26
|
+
"orientation": "landscape"
|
|
27
|
+
},
|
|
28
|
+
"uri": "https://iata.trustregistry.nborbit.ca/svg/boardingpass.svg",
|
|
29
|
+
"uri#integrity": "sha256-KC5EijLVECWtRRxGY78Z9wX2WQbFFzUKgb3pmVgOWmg"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"claims": [
|
|
35
|
+
{
|
|
36
|
+
"display": [
|
|
37
|
+
{
|
|
38
|
+
"description": "Information about the boarding pass.",
|
|
39
|
+
"label": "Boarding Pass",
|
|
40
|
+
"lang": "en-US"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"path": ["boardingPass"]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"display": [
|
|
47
|
+
{
|
|
48
|
+
"description": "Encoded barcode string on the boarding pass.",
|
|
49
|
+
"label": "Barcode String",
|
|
50
|
+
"lang": "en-US"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"path": ["boardingPass", "barcodeString"]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"display": [
|
|
57
|
+
{
|
|
58
|
+
"description": "Passenger's full name as displayed on the boarding pass.",
|
|
59
|
+
"label": "Passenger Name",
|
|
60
|
+
"lang": "en-US"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"path": ["boardingPass", "paxName"]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"display": [
|
|
67
|
+
{
|
|
68
|
+
"description": "The total number of segments in the boarding pass.",
|
|
69
|
+
"label": "Segment Count",
|
|
70
|
+
"lang": "en-US"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"path": ["boardingPass", "segmentCount"]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"display": [
|
|
77
|
+
{
|
|
78
|
+
"description": "Indicator for ticket type: 'E' for electronic ticket or 'L' for ticketless.",
|
|
79
|
+
"label": "Ticket Indicator",
|
|
80
|
+
"lang": "en-US"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"path": ["boardingPass", "ticketLessOrElectronicTicketInd"]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"display": [
|
|
87
|
+
{
|
|
88
|
+
"description": "Details of each passenger segment in the boarding pass.",
|
|
89
|
+
"label": "Passenger Segments",
|
|
90
|
+
"lang": "en-US"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"path": ["boardingPass", "paxSegments", null]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"display": [
|
|
97
|
+
{
|
|
98
|
+
"description": "Booking reference ID for the flight segment.",
|
|
99
|
+
"label": "Booking Reference ID",
|
|
100
|
+
"lang": "en-US"
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"path": ["boardingPass", "paxSegments", null, "bookingRefID"]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"display": [
|
|
107
|
+
{
|
|
108
|
+
"description": "Passenger's check-in sequence number.",
|
|
109
|
+
"label": "Check-In Sequence",
|
|
110
|
+
"lang": "en-US"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"path": ["boardingPass", "paxSegments", null, "checkInOrdinal"]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"display": [
|
|
117
|
+
{
|
|
118
|
+
"description": "Compartment type code for the flight segment.",
|
|
119
|
+
"label": "Compartment Type",
|
|
120
|
+
"lang": "en-US"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"path": ["boardingPass", "paxSegments", null, "compartmentTypeCode"]
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"display": [
|
|
127
|
+
{
|
|
128
|
+
"description": "Origin station IATA code for the flight segment.",
|
|
129
|
+
"label": "Origin Station",
|
|
130
|
+
"lang": "en-US"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"path": ["boardingPass", "paxSegments", null, "originStationIATALocationCode"]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"display": [
|
|
137
|
+
{
|
|
138
|
+
"description": "Destination station IATA code for the flight segment.",
|
|
139
|
+
"label": "Destination Station",
|
|
140
|
+
"lang": "en-US"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"path": ["boardingPass", "paxSegments", null, "destStationIATALocationCode"]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"display": [
|
|
147
|
+
{
|
|
148
|
+
"description": "Flight identifier date in Julian format.",
|
|
149
|
+
"label": "Flight Date (Julian)",
|
|
150
|
+
"lang": "en-US"
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"path": ["boardingPass", "paxSegments", null, "flightIdentifierDate"]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"display": [
|
|
157
|
+
{
|
|
158
|
+
"description": "Operating carrier airline designator code.",
|
|
159
|
+
"label": "Operating Carrier Code",
|
|
160
|
+
"lang": "en-US"
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"path": ["boardingPass", "paxSegments", null, "operatingCarrierAirlineDesigCode"]
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"display": [
|
|
167
|
+
{
|
|
168
|
+
"description": "Operating carrier's flight number for the segment.",
|
|
169
|
+
"label": "Flight Number",
|
|
170
|
+
"lang": "en-US"
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"path": ["boardingPass", "paxSegments", null, "operatingCarrierFlightNumber"]
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"display": [
|
|
177
|
+
{
|
|
178
|
+
"description": "Passenger's related status code for the flight.",
|
|
179
|
+
"label": "Passenger Status Code",
|
|
180
|
+
"lang": "en-US"
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"path": ["boardingPass", "paxSegments", null, "paxRelatedStatusCode"]
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"display": [
|
|
187
|
+
{
|
|
188
|
+
"description": "Seat number or status assigned to the passenger.",
|
|
189
|
+
"label": "Seat Assignment",
|
|
190
|
+
"lang": "en-US"
|
|
191
|
+
}
|
|
192
|
+
],
|
|
193
|
+
"path": ["boardingPass", "paxSegments", null, "seatAssignmentStatusOrSeatNumberCode"]
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "Loyalty Program Account",
|
|
4
|
+
"title": "Loyalty Program Account",
|
|
5
|
+
"description": "Verifiable Credential for loyalty program account.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["loyaltyProgramAccount", "iss", "iat", "vct", "cnf"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"loyaltyProgramAccount": {
|
|
10
|
+
"title": "Loyalty Program Account",
|
|
11
|
+
"description": "An account set up for a customer within a rewards program which holds funds on behalf of that customer.",
|
|
12
|
+
"required": [
|
|
13
|
+
"givenName",
|
|
14
|
+
"loyaltyProgramAccountIdentifier",
|
|
15
|
+
"loyaltyProgramAccountTierLevelCode",
|
|
16
|
+
"loyaltyProgramCode",
|
|
17
|
+
"loyaltyProgramName",
|
|
18
|
+
"providerName",
|
|
19
|
+
"surname",
|
|
20
|
+
"titleName"
|
|
21
|
+
],
|
|
22
|
+
"properties": {
|
|
23
|
+
"givenName": {
|
|
24
|
+
"title": "Credential Subject Given Name",
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1,
|
|
27
|
+
"maxLength": 64
|
|
28
|
+
},
|
|
29
|
+
"loyaltyProgramAccountIdentifier": {
|
|
30
|
+
"title": "Loyalty Credential Subject Loyalty Program Account Identifier",
|
|
31
|
+
"type": "string",
|
|
32
|
+
"maxLength": 35
|
|
33
|
+
},
|
|
34
|
+
"loyaltyProgramAccountTierLevelCode": {
|
|
35
|
+
"title": "Loyalty Credential Subject Loyalty Program Account Tier Level Code",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"maxLength": 35
|
|
38
|
+
},
|
|
39
|
+
"loyaltyProgramCode": {
|
|
40
|
+
"title": "Credential Subject Loyalty Program Code",
|
|
41
|
+
"type": "string",
|
|
42
|
+
"maxLength": 35
|
|
43
|
+
},
|
|
44
|
+
"loyaltyProgramName": {
|
|
45
|
+
"title": "Credential Subject Loyalty Program Name",
|
|
46
|
+
"type": "string",
|
|
47
|
+
"minLength": 1,
|
|
48
|
+
"maxLength": 64
|
|
49
|
+
},
|
|
50
|
+
"providerName": {
|
|
51
|
+
"title": "Credential Subject Provider Name",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1,
|
|
54
|
+
"maxLength": 64
|
|
55
|
+
},
|
|
56
|
+
"surname": {
|
|
57
|
+
"title": "Credential Subject Surname",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1,
|
|
60
|
+
"maxLength": 64
|
|
61
|
+
},
|
|
62
|
+
"titleName": {
|
|
63
|
+
"title": "Credential Subject Title Name",
|
|
64
|
+
"type": "string",
|
|
65
|
+
"minLength": 2,
|
|
66
|
+
"maxLength": 88
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"iss": {
|
|
71
|
+
"title": "Issuer",
|
|
72
|
+
"description": "URI identifying the issuer of the credential.",
|
|
73
|
+
"type": "string",
|
|
74
|
+
"format": "uri"
|
|
75
|
+
},
|
|
76
|
+
"iat": {
|
|
77
|
+
"title": "Issued At",
|
|
78
|
+
"description": "The time at which the credential was issued (Unix timestamp).",
|
|
79
|
+
"type": "integer"
|
|
80
|
+
},
|
|
81
|
+
"exp": {
|
|
82
|
+
"title": "Expiration",
|
|
83
|
+
"description": "The time at which the credential expires (Unix timestamp).",
|
|
84
|
+
"type": "integer"
|
|
85
|
+
},
|
|
86
|
+
"vct": {
|
|
87
|
+
"title": "Verifiable Credential Type",
|
|
88
|
+
"description": "A URI or string identifying the type or context of this credential.",
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
"cnf": {
|
|
92
|
+
"title": "Confirmation",
|
|
93
|
+
"description": "Proof-of-possession key information used to bind the credential to a specific holder.",
|
|
94
|
+
"type": "object"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Loyalty Program Account Verifiable Credential",
|
|
3
|
+
"schema_uri": "https://iata.trustregistry.nborbit.ca/.well-known/schema/loyalty.json",
|
|
4
|
+
"schema_uri#integrity": "sha256-E08U75Zcmn1iIxBlZx3V/QW0cshVZJmSQx97WfRSGI4",
|
|
5
|
+
"vct": "https://iata.trustregistry.nborbit.ca/loyalty",
|
|
6
|
+
"description": "A Verifiable Credential for loyalty program accounts.",
|
|
7
|
+
"display": [
|
|
8
|
+
{
|
|
9
|
+
"description": "A Verifiable Credential for loyalty program accounts.",
|
|
10
|
+
"lang": "en-US",
|
|
11
|
+
"name": "Loyalty Program Account Verifiable Credential",
|
|
12
|
+
"rendering": {
|
|
13
|
+
"simple": {
|
|
14
|
+
"background_color": "#9C4FE9",
|
|
15
|
+
"logo": {
|
|
16
|
+
"alt_text": "Loyalty Program Account Logo",
|
|
17
|
+
"uri": "https://iata.trustregistry.nborbit.ca/logo/loyaltyprogramaccount-icon.png",
|
|
18
|
+
"uri#integrity": "sha256-eQ0XRK+TeJWtu4gzlg1mgdsQV1JgJ7Ua2zRavx3VL5Q"
|
|
19
|
+
},
|
|
20
|
+
"text_color": "#F9F9F9"
|
|
21
|
+
},
|
|
22
|
+
"svg_template": {
|
|
23
|
+
"properties": {
|
|
24
|
+
"color_scheme": "light",
|
|
25
|
+
"contrast": "high",
|
|
26
|
+
"orientation": "landscape"
|
|
27
|
+
},
|
|
28
|
+
"uri": "https://iata.trustregistry.nborbit.ca/svg/loyaltyprogramaccount.svg",
|
|
29
|
+
"uri#integrity": "sha256-e4CeMf3coRiX720sOrvMwLHmzy3wjlYZ0xRq/qD/+zw"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"claims": [
|
|
35
|
+
{
|
|
36
|
+
"display": [
|
|
37
|
+
{
|
|
38
|
+
"description": "Loyalty Program Account Information",
|
|
39
|
+
"label": "Loyalty Program Account",
|
|
40
|
+
"lang": "en-US"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"path": ["loyaltyProgramAccount"]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"display": [
|
|
47
|
+
{
|
|
48
|
+
"description": "First Name",
|
|
49
|
+
"label": "Given Name",
|
|
50
|
+
"lang": "en-US"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"path": ["loyaltyProgramAccount", "givenName"]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"display": [
|
|
57
|
+
{
|
|
58
|
+
"description": "Last Name",
|
|
59
|
+
"label": "Surname",
|
|
60
|
+
"lang": "en-US"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"path": ["loyaltyProgramAccount", "surname"]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"display": [
|
|
67
|
+
{
|
|
68
|
+
"description": "Title (e.g., Mr., Ms., Dr.)",
|
|
69
|
+
"label": "Title Name",
|
|
70
|
+
"lang": "en-US"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"path": ["loyaltyProgramAccount", "titleName"]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"display": [
|
|
77
|
+
{
|
|
78
|
+
"description": "Unique identifier for the loyalty program account.",
|
|
79
|
+
"label": "Account Identifier",
|
|
80
|
+
"lang": "en-US"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"path": ["loyaltyProgramAccount", "loyaltyProgramAccountIdentifier"]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"display": [
|
|
87
|
+
{
|
|
88
|
+
"description": "Tier level of the loyalty program account.",
|
|
89
|
+
"label": "Tier Level Code",
|
|
90
|
+
"lang": "en-US"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"path": ["loyaltyProgramAccount", "loyaltyProgramAccountTierLevelCode"]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"display": [
|
|
97
|
+
{
|
|
98
|
+
"description": "Code identifying the loyalty program.",
|
|
99
|
+
"label": "Program Code",
|
|
100
|
+
"lang": "en-US"
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"path": ["loyaltyProgramAccount", "loyaltyProgramCode"]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"display": [
|
|
107
|
+
{
|
|
108
|
+
"description": "Name of the loyalty program.",
|
|
109
|
+
"label": "Program Name",
|
|
110
|
+
"lang": "en-US"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"path": ["loyaltyProgramAccount", "loyaltyProgramName"]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"display": [
|
|
117
|
+
{
|
|
118
|
+
"description": "Name of the provider offering the loyalty program.",
|
|
119
|
+
"label": "Provider Name",
|
|
120
|
+
"lang": "en-US"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"path": ["loyaltyProgramAccount", "providerName"]
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.prod.contactlesstravel.iata.org/BoardingPassVC.json",
|
|
4
|
+
"title": "Boarding Pass",
|
|
5
|
+
"description": "Verifiable Credential for a boarding pass.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["boardingPass", "iss", "iat", "vct", "cnf"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"boardingPass": {
|
|
10
|
+
"title": "Boarding Pass",
|
|
11
|
+
"description": "A type of accountable document, given to a passenger during check-in, that gives the passenger authorization to board aircraft for a specific set of flights.",
|
|
12
|
+
"type": "object",
|
|
13
|
+
"required": ["barcodeString", "paxName", "paxSegments", "segmentCount", "ticketLessOrElectronicTicketInd"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"barcodeString": {
|
|
16
|
+
"title": "Barcode String",
|
|
17
|
+
"description": "Encoded string containing the entire barcode of the boarding pass. Format as ASCII hexadecimal.",
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"paxName": {
|
|
21
|
+
"title": "Passenger Name",
|
|
22
|
+
"description": "Full name of the passenger. Surname of passenger followed by an oblique and the given name, when available.",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1,
|
|
25
|
+
"maxLength": 20
|
|
26
|
+
},
|
|
27
|
+
"segmentCount": {
|
|
28
|
+
"title": "Segment Count",
|
|
29
|
+
"description": "Number of segments on the boarding pass.",
|
|
30
|
+
"type": "integer",
|
|
31
|
+
"minimum": 1,
|
|
32
|
+
"maximum": 4
|
|
33
|
+
},
|
|
34
|
+
"ticketLessOrElectronicTicketInd": {
|
|
35
|
+
"title": "Ticketless or Electronic Ticket Indicator",
|
|
36
|
+
"description": "Indicates if the boarding pass is issued against an electronic ticket or is ticketless. 'E' indicates electronic ticket, and 'L' indicates ticketless.",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"maxLength": 1,
|
|
39
|
+
"enum": ["E", "L"]
|
|
40
|
+
},
|
|
41
|
+
"paxSegments": {
|
|
42
|
+
"title": "Passenger Segments",
|
|
43
|
+
"description": "Transportation of a passenger on a Dated Operating Segment.",
|
|
44
|
+
"type": "array",
|
|
45
|
+
"minItems": 1,
|
|
46
|
+
"maxItems": 4,
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": [
|
|
50
|
+
"bookingRefID",
|
|
51
|
+
"checkInOrdinal",
|
|
52
|
+
"compartmentTypeCode",
|
|
53
|
+
"destStationIATALocationCode",
|
|
54
|
+
"flightIdentifierDate",
|
|
55
|
+
"operatingCarrierAirlineDesigCode",
|
|
56
|
+
"operatingCarrierFlightNumber",
|
|
57
|
+
"originStationIATALocationCode",
|
|
58
|
+
"paxRelatedStatusCode",
|
|
59
|
+
"seatAssignmentStatusOrSeatNumberCode"
|
|
60
|
+
],
|
|
61
|
+
"properties": {
|
|
62
|
+
"bookingRefID": {
|
|
63
|
+
"title": "Booking Reference Identifier",
|
|
64
|
+
"description": "Booking reference, also called Record Locator or PNR Code, of the operating carrier.",
|
|
65
|
+
"type": "string",
|
|
66
|
+
"maxLength": 7
|
|
67
|
+
},
|
|
68
|
+
"checkInOrdinal": {
|
|
69
|
+
"title": "Check-In Sequence Number",
|
|
70
|
+
"description": "The ordinal in which the passenger checked in for the flight. Usually appears as 4 numerics and an optional alpha or a blank.",
|
|
71
|
+
"type": "string",
|
|
72
|
+
"maxLength": 5
|
|
73
|
+
},
|
|
74
|
+
"compartmentTypeCode": {
|
|
75
|
+
"title": "Compartment Type Code",
|
|
76
|
+
"description": "Code of the class of compartment in an operational context, not the booking fare class.",
|
|
77
|
+
"type": "string",
|
|
78
|
+
"maxLength": 1
|
|
79
|
+
},
|
|
80
|
+
"destStationIATALocationCode": {
|
|
81
|
+
"title": "Destination Station IATA Location Code",
|
|
82
|
+
"description": "IATA location code for the arrival station.",
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 3,
|
|
85
|
+
"maxLength": 3
|
|
86
|
+
},
|
|
87
|
+
"flightIdentifierDate": {
|
|
88
|
+
"title": "Flight Identifier Date",
|
|
89
|
+
"description": "Day in the year of the scheduled aircraft departure from the station of origin; expressed as Julian Date.",
|
|
90
|
+
"type": "string",
|
|
91
|
+
"pattern": "^[0-9]{3}$"
|
|
92
|
+
},
|
|
93
|
+
"operatingCarrierAirlineDesigCode": {
|
|
94
|
+
"title": "Operating Carrier Airline Designator Code",
|
|
95
|
+
"description": "The IATA Airline code or ICAO Airline code of the operating airline.",
|
|
96
|
+
"type": "string",
|
|
97
|
+
"pattern": "^([A-Z]{3}|[A-Z]{2})|([0-9][A-Z])|([A-Z][0-9])$"
|
|
98
|
+
},
|
|
99
|
+
"operatingCarrierFlightNumber": {
|
|
100
|
+
"title": "Operating Carrier Flight Number",
|
|
101
|
+
"description": "The numerical designation of a flight as assigned by the operating carrier.",
|
|
102
|
+
"type": "string",
|
|
103
|
+
"pattern": "^[0-9]{1,4}$"
|
|
104
|
+
},
|
|
105
|
+
"originStationIATALocationCode": {
|
|
106
|
+
"title": "Origin Station IATA Location Code",
|
|
107
|
+
"description": "IATA location code for the departure station.",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"minLength": 3,
|
|
110
|
+
"maxLength": 3
|
|
111
|
+
},
|
|
112
|
+
"paxRelatedStatusCode": {
|
|
113
|
+
"title": "Passenger Related Status Code",
|
|
114
|
+
"description": "Combination of passenger, baggage item(s), ticket and other statuses and process directives.",
|
|
115
|
+
"type": "string",
|
|
116
|
+
"pattern": "^[0-9A-Z]$"
|
|
117
|
+
},
|
|
118
|
+
"seatAssignmentStatusOrSeatNumberCode": {
|
|
119
|
+
"title": "Seat Assignment Status or Seat Number Code",
|
|
120
|
+
"description": "Seat Number assigned to the passenger or the word GATE if the seat has not been allocated.",
|
|
121
|
+
"type": "string",
|
|
122
|
+
"maxLength": 4
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"iss": {
|
|
130
|
+
"title": "Issuer",
|
|
131
|
+
"description": "URI identifying the issuer of the credential.",
|
|
132
|
+
"type": "string",
|
|
133
|
+
"format": "uri"
|
|
134
|
+
},
|
|
135
|
+
"iat": {
|
|
136
|
+
"title": "Issued At",
|
|
137
|
+
"description": "The time at which the credential was issued (Unix timestamp).",
|
|
138
|
+
"type": "integer"
|
|
139
|
+
},
|
|
140
|
+
"exp": {
|
|
141
|
+
"title": "Expiration",
|
|
142
|
+
"description": "The time at which the credential expires (Unix timestamp).",
|
|
143
|
+
"type": "integer"
|
|
144
|
+
},
|
|
145
|
+
"vct": {
|
|
146
|
+
"title": "Verifiable Credential Type",
|
|
147
|
+
"description": "A URI or string identifying the type or context of this credential.",
|
|
148
|
+
"type": "string"
|
|
149
|
+
},
|
|
150
|
+
"cnf": {
|
|
151
|
+
"title": "Confirmation",
|
|
152
|
+
"description": "Proof-of-possession key information used to bind the credential to a specific holder.",
|
|
153
|
+
"type": "object"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
Binary file
|