ondc-code-generator 1.0.0 → 1.0.1

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.
Files changed (32) hide show
  1. package/alpha/docs/rag-docs/confirm.md +301 -0
  2. package/alpha/docs/rag-docs/init.md +422 -0
  3. package/alpha/docs/rag-docs/on_confirm.md +921 -0
  4. package/alpha/docs/rag-docs/on_init.md +823 -0
  5. package/alpha/docs/rag-docs/on_search.md +897 -0
  6. package/alpha/docs/rag-docs/on_select.md +522 -0
  7. package/alpha/docs/rag-docs/on_status.md +854 -0
  8. package/alpha/docs/rag-docs/on_update.md +921 -0
  9. package/alpha/docs/rag-docs/search.md +678 -0
  10. package/alpha/docs/rag-docs/select.md +344 -0
  11. package/alpha/docs/rag-docs/status.md +178 -0
  12. package/alpha/docs/rag-docs/update.md +229 -0
  13. package/alpha/docs/rag-table-docs/confirm.md +63 -0
  14. package/alpha/docs/rag-table-docs/init.md +81 -0
  15. package/alpha/docs/rag-table-docs/on_confirm.md +164 -0
  16. package/alpha/docs/rag-table-docs/on_init.md +146 -0
  17. package/alpha/docs/rag-table-docs/on_search.md +163 -0
  18. package/alpha/docs/rag-table-docs/on_select.md +99 -0
  19. package/alpha/docs/rag-table-docs/on_status.md +153 -0
  20. package/alpha/docs/rag-table-docs/on_update.md +164 -0
  21. package/alpha/docs/rag-table-docs/raw_table.json +11198 -0
  22. package/alpha/docs/rag-table-docs/search.md +128 -0
  23. package/alpha/docs/rag-table-docs/select.md +70 -0
  24. package/alpha/docs/rag-table-docs/status.md +44 -0
  25. package/alpha/docs/rag-table-docs/update.md +51 -0
  26. package/alpha/docs/validPaths.json +34134 -0
  27. package/dist/generator/generators/documentation/markdown-message-generator.js +4 -1
  28. package/dist/generator/generators/rag/rag-generator.d.ts +39 -28
  29. package/dist/generator/generators/rag/rag-generator.js +149 -103
  30. package/dist/generator/generators/rag/rag-table-generator.d.ts +6 -0
  31. package/dist/generator/generators/rag/rag-table-generator.js +16 -6
  32. package/package.json +1 -1
@@ -0,0 +1,344 @@
1
+ ---
2
+ action: select
3
+ codeName: L1validations
4
+ numTests: 40
5
+ generated: 2026-03-10
6
+ domain: ONDC:FIS12
7
+ version: 2.3.0
8
+ ---
9
+
10
+ # L1validations — `select` Validations
11
+
12
+ These are the validation rules applied when processing the `select` API call in the L1validations flow.
13
+ There are **40** validation rules organized into **4** top-level group(s).
14
+
15
+ ---
16
+ ## SELECT_CONTEXT
17
+
18
+ This group contains **3** sub-group(s)/validation(s): CONTEXT_REQUIRED, CONTEXT_ENUM, and CONTEXT_REGEX.
19
+
20
+ ---
21
+
22
+ ### CONTEXT_REQUIRED
23
+
24
+ This is a group of **12** sub-validation(s) that all must pass: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, and REQUIRED_CONTEXT_BPP_URI.
25
+
26
+ ---
27
+
28
+ **REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE**
29
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
30
+
31
+ - $.context.location.country.code must be present in the payload
32
+
33
+ **REQUIRED_CONTEXT_LOCATION_CITY_CODE**
34
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
35
+
36
+ - $.context.location.city.code must be present in the payload
37
+
38
+ **REQUIRED_CONTEXT_DOMAIN**
39
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
40
+
41
+ - $.context.domain must be present in the payload
42
+
43
+ **REQUIRED_CONTEXT_TIMESTAMP**
44
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
45
+
46
+ - $.context.timestamp must be present in the payload
47
+
48
+ **REQUIRED_CONTEXT_BAP_ID**
49
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
50
+
51
+ - $.context.bap_id must be present in the payload
52
+
53
+ **REQUIRED_CONTEXT_BAP_URI**
54
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
55
+
56
+ - $.context.bap_uri must be present in the payload
57
+
58
+ **REQUIRED_CONTEXT_TRANSACTION_ID**
59
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
60
+
61
+ - $.context.transaction_id must be present in the payload
62
+
63
+ **REQUIRED_CONTEXT_MESSAGE_ID**
64
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
65
+
66
+ - $.context.message_id must be present in the payload
67
+
68
+ **REQUIRED_CONTEXT_VERSION**
69
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
70
+
71
+ - $.context.version must be present in the payload
72
+
73
+ **REQUIRED_CONTEXT_TTL**
74
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
75
+
76
+ - $.context.ttl must be present in the payload
77
+
78
+ **REQUIRED_CONTEXT_BPP_ID**
79
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
80
+
81
+ - $.context.bpp_id must be present in the payload
82
+
83
+ **REQUIRED_CONTEXT_BPP_URI**
84
+ `group: SELECT_CONTEXT > CONTEXT_REQUIRED | type: leaf`
85
+
86
+ - $.context.bpp_uri must be present in the payload
87
+
88
+ ### CONTEXT_ENUM
89
+
90
+ This is a group of **2** sub-validation(s) that all must pass: VALID_CONTEXT_LOCATION_COUNTRY_CODE and VALID_CONTEXT_DOMAIN.
91
+
92
+ ---
93
+
94
+ **VALID_CONTEXT_LOCATION_COUNTRY_CODE**
95
+ `group: SELECT_CONTEXT > CONTEXT_ENUM | type: leaf`
96
+
97
+ - All elements of $.context.location.country.code must be in ["IND"]
98
+
99
+ > **Skip if:**
100
+ > - $.context.location.country.code is not in the payload
101
+
102
+ **VALID_CONTEXT_DOMAIN**
103
+ `group: SELECT_CONTEXT > CONTEXT_ENUM | type: leaf`
104
+
105
+ - All elements of $.context.domain must be in ["ONDC:FIS12"]
106
+
107
+ > **Skip if:**
108
+ > - $.context.domain is not in the payload
109
+
110
+ ### CONTEXT_REGEX
111
+
112
+ This is a group of **7** sub-validation(s) that all must pass: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, and REGEX_CONTEXT_BPP_URI.
113
+
114
+ ---
115
+
116
+ **REGEX_CONTEXT_LOCATION_CITY_CODE**
117
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
118
+
119
+ - All elements of $.context.location.city.code must follow every regex in ["(\\*)|(^std\\:[0-9]{2,4}$)"]
120
+
121
+ > **Skip if:**
122
+ > - $.context.location.city.code is not in the payload
123
+
124
+ **REGEX_CONTEXT_TIMESTAMP_1**
125
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
126
+
127
+ - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})$"]
128
+
129
+ > **Skip if:**
130
+ > - $.context.timestamp is not in the payload
131
+
132
+ **REGEX_CONTEXT_BAP_ID**
133
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
134
+
135
+ - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http|https|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"]
136
+
137
+ > **Skip if:**
138
+ > - $.context.bap_id is not in the payload
139
+
140
+ **REGEX_CONTEXT_BAP_URI**
141
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
142
+
143
+ - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"]
144
+
145
+ > **Skip if:**
146
+ > - $.context.bap_uri is not in the payload
147
+
148
+ **REQUIRED_CONTEXT_TTL**
149
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
150
+
151
+ - All elements of $.context.ttl must follow every regex in ["^P(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"]
152
+
153
+ > **Skip if:**
154
+ > - $.context.ttl is not in the payload
155
+
156
+ **REGEX_CONTEXT_BPP_ID**
157
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
158
+
159
+ - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http|https|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"]
160
+
161
+ > **Skip if:**
162
+ > - $.context.bpp_id is not in the payload
163
+
164
+ **REGEX_CONTEXT_BPP_URI**
165
+ `group: SELECT_CONTEXT > CONTEXT_REGEX | type: leaf`
166
+
167
+ - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"]
168
+
169
+ > **Skip if:**
170
+ > - $.context.bpp_uri is not in the payload
171
+
172
+ ---
173
+
174
+ ## REQUIRED_PROVIDER_ID
175
+
176
+ `group: top-level | type: leaf`
177
+
178
+ - $.message.order.provider.id must be present in the payload
179
+
180
+ ---
181
+
182
+ ## REQUIRED_ITEM_FIELDS
183
+
184
+ This group contains **4** sub-group(s)/validation(s): REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_XINPUT_ITEMS, and VALID_TAGS.
185
+
186
+ ---
187
+
188
+ **REQUIRED_ITEM_ID**
189
+ `group: REQUIRED_ITEM_FIELDS | type: leaf`
190
+
191
+ - $.message.order.items[*].id must be present in the payload
192
+
193
+ **REQUIRED_PARENT_ITEM_ID**
194
+ `group: REQUIRED_ITEM_FIELDS | type: leaf`
195
+
196
+ - $.message.order.items[*].parent_item_id must be present in the payload
197
+
198
+ ### REQUIRED_XINPUT_ITEMS
199
+
200
+ This group contains **3** sub-group(s)/validation(s): SET_LOAN_AMOUNT_FORM, REQUIRED_FORM_SUBMISSION_ID, and BUSINESS_KYC_FORM.
201
+
202
+ > **Skip if:**
203
+ > - $.message.order.items[*].xinput.form.id must **not** be present in the payload
204
+
205
+ ---
206
+
207
+ #### SET_LOAN_AMOUNT_FORM
208
+
209
+ This is a group of **2** sub-validation(s) that all must pass: REQUIRED_REQUEST_AMOUNT and REQUIRED_REQUEST_TERM.
210
+
211
+ > **Skip if:**
212
+ > - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["SET_LOAN_AMOUNT"]
213
+
214
+ ---
215
+
216
+ **REQUIRED_REQUEST_AMOUNT**
217
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > SET_LOAN_AMOUNT_FORM | type: leaf`
218
+
219
+ - $.message.order.items[*].xinput.form.data.requestAmount.value must be present in the payload
220
+
221
+ **REQUIRED_REQUEST_TERM**
222
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > SET_LOAN_AMOUNT_FORM | type: leaf`
223
+
224
+ - $.message.order.items[*].xinput.form.data.requestTerm.value must be present in the payload
225
+
226
+ **REQUIRED_FORM_SUBMISSION_ID**
227
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | type: leaf`
228
+
229
+ - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload
230
+
231
+ > **Skip if:**
232
+ > - not all elements of $.message.order.items[*].xinput.head.descriptor.code are in ["INDIVIDUAL_KYC", "MANUAL_VERIFICATION"]
233
+
234
+ #### BUSINESS_KYC_FORM
235
+
236
+ This is a group of **4** sub-validation(s) that all must pass: REQUIRED_COMPANY_PAN, REQUIRED_GST_CERTIFICATE, REQUIRED_BUSINESS_PROOF, and REQUIRED_APPLICATION_FORM.
237
+
238
+ > **Skip if:**
239
+ > - $.message.order.items[*].xinput.head.descriptor.code must **not** equal ["BUSINESS_KYC"]
240
+
241
+ ---
242
+
243
+ **REQUIRED_COMPANY_PAN**
244
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
245
+
246
+ - $.message.order.items[*].xinput.form.data.companyPan.value must be present in the payload
247
+
248
+ **REQUIRED_GST_CERTIFICATE**
249
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
250
+
251
+ - $.message.order.items[*].xinput.form.data.gstCertificate.value must be present in the payload
252
+
253
+ **REQUIRED_BUSINESS_PROOF**
254
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
255
+
256
+ - $.message.order.items[*].xinput.form.data.businessProof.value must be present in the payload
257
+
258
+ **REQUIRED_APPLICATION_FORM**
259
+ `group: REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS > BUSINESS_KYC_FORM | type: leaf`
260
+
261
+ - $.message.order.items[*].xinput.form.data.applicationForm.value must be present in the payload
262
+
263
+ ### VALID_TAGS
264
+
265
+ This is a group of **2** sub-validation(s) that all must pass: VALID_ITEM_TAGS and VALID_PLEDGE_TAGS.
266
+
267
+ > **Skip if:**
268
+ > - $.message.order.items[*].tags[*].descriptor.code must **not** be present in the payload
269
+
270
+ ---
271
+
272
+ **VALID_ITEM_TAGS**
273
+ `group: REQUIRED_ITEM_FIELDS > VALID_TAGS | type: leaf`
274
+
275
+ - All elements of $.message.order.items[*].tags[*].descriptor.code must be in ["PLEDGE_REQUIREMENTS"]
276
+
277
+ > **Skip if:**
278
+ > - $.message.order.items[*].tags[*].descriptor.code is not in the payload
279
+
280
+ **VALID_PLEDGE_TAGS**
281
+ `group: REQUIRED_ITEM_FIELDS > VALID_TAGS | type: leaf | scope: $.message.order.items[*].tags[?(@.descriptor.code == PLEDGE_REQUIREMENTS)]`
282
+
283
+ - All elements of $.message.order.items[*].tags[?(@.descriptor.code == PLEDGE_REQUIREMENTS)].list[*].descriptor.code must be in ["SCHEME_CODE", "UNITS_PLEDGED"]
284
+
285
+ ---
286
+
287
+ ## REQUIRED_FULFILMENT_ITEMS
288
+
289
+ This group contains **2** sub-group(s)/validation(s): REQUIRED_FULFILLMENT_ID and REQUIRED_CUSTOMER_ITEMS.
290
+
291
+ ---
292
+
293
+ **REQUIRED_FULFILLMENT_ID**
294
+ `group: REQUIRED_FULFILMENT_ITEMS | type: leaf`
295
+
296
+ - $.message.order.fulfillments[*].id must be present in the payload
297
+
298
+ ### REQUIRED_CUSTOMER_ITEMS
299
+
300
+ This group contains **5** sub-group(s)/validation(s): REQUIRED_CUSTOMER_DOB, REQUIRED_CUSTOMER_GENDER, REQUIRED_CREDS, REQUIRED_CUSTOMER_CONTACT_EMAIL, and REQUIRED_CUSTOMER_CONTACT_PHONE.
301
+
302
+ > **Skip if:**
303
+ > - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload
304
+
305
+ ---
306
+
307
+ **REQUIRED_CUSTOMER_DOB**
308
+ `group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
309
+
310
+ - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
311
+
312
+ **REQUIRED_CUSTOMER_GENDER**
313
+ `group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
314
+
315
+ - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
316
+
317
+ #### REQUIRED_CREDS
318
+
319
+ This is a group of **2** sub-validation(s) that all must pass: REQUIRED_CUSTOMER_CREDS_ID and REQUIRED_CUSTOMER_CREDS_TYPE.
320
+
321
+ > **Skip if:**
322
+ > - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload
323
+
324
+ ---
325
+
326
+ **REQUIRED_CUSTOMER_CREDS_ID**
327
+ `group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | type: leaf`
328
+
329
+ - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload
330
+
331
+ **REQUIRED_CUSTOMER_CREDS_TYPE**
332
+ `group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | type: leaf`
333
+
334
+ - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload
335
+
336
+ **REQUIRED_CUSTOMER_CONTACT_EMAIL**
337
+ `group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
338
+
339
+ - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
340
+
341
+ **REQUIRED_CUSTOMER_CONTACT_PHONE**
342
+ `group: REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | type: leaf`
343
+
344
+ - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload
@@ -0,0 +1,178 @@
1
+ ---
2
+ action: status
3
+ codeName: L1validations
4
+ numTests: 22
5
+ generated: 2026-03-10
6
+ domain: ONDC:FIS12
7
+ version: 2.3.0
8
+ ---
9
+
10
+ # L1validations — `status` Validations
11
+
12
+ These are the validation rules applied when processing the `status` API call in the L1validations flow.
13
+ There are **22** validation rules organized into **2** top-level group(s).
14
+
15
+ ---
16
+ ## STATUS_CONTEXT
17
+
18
+ This group contains **3** sub-group(s)/validation(s): CONTEXT_REQUIRED, CONTEXT_ENUM, and CONTEXT_REGEX.
19
+
20
+ ---
21
+
22
+ ### CONTEXT_REQUIRED
23
+
24
+ This is a group of **12** sub-validation(s) that all must pass: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, and REQUIRED_CONTEXT_BPP_URI.
25
+
26
+ ---
27
+
28
+ **REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE**
29
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
30
+
31
+ - $.context.location.country.code must be present in the payload
32
+
33
+ **REQUIRED_CONTEXT_LOCATION_CITY_CODE**
34
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
35
+
36
+ - $.context.location.city.code must be present in the payload
37
+
38
+ **REQUIRED_CONTEXT_DOMAIN**
39
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
40
+
41
+ - $.context.domain must be present in the payload
42
+
43
+ **REQUIRED_CONTEXT_TIMESTAMP**
44
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
45
+
46
+ - $.context.timestamp must be present in the payload
47
+
48
+ **REQUIRED_CONTEXT_BAP_ID**
49
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
50
+
51
+ - $.context.bap_id must be present in the payload
52
+
53
+ **REQUIRED_CONTEXT_BAP_URI**
54
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
55
+
56
+ - $.context.bap_uri must be present in the payload
57
+
58
+ **REQUIRED_CONTEXT_TRANSACTION_ID**
59
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
60
+
61
+ - $.context.transaction_id must be present in the payload
62
+
63
+ **REQUIRED_CONTEXT_MESSAGE_ID**
64
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
65
+
66
+ - $.context.message_id must be present in the payload
67
+
68
+ **REQUIRED_CONTEXT_VERSION**
69
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
70
+
71
+ - $.context.version must be present in the payload
72
+
73
+ **REQUIRED_CONTEXT_TTL**
74
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
75
+
76
+ - $.context.ttl must be present in the payload
77
+
78
+ **REQUIRED_CONTEXT_BPP_ID**
79
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
80
+
81
+ - $.context.bpp_id must be present in the payload
82
+
83
+ **REQUIRED_CONTEXT_BPP_URI**
84
+ `group: STATUS_CONTEXT > CONTEXT_REQUIRED | type: leaf`
85
+
86
+ - $.context.bpp_uri must be present in the payload
87
+
88
+ ### CONTEXT_ENUM
89
+
90
+ This is a group of **2** sub-validation(s) that all must pass: VALID_CONTEXT_LOCATION_COUNTRY_CODE and VALID_CONTEXT_DOMAIN.
91
+
92
+ ---
93
+
94
+ **VALID_CONTEXT_LOCATION_COUNTRY_CODE**
95
+ `group: STATUS_CONTEXT > CONTEXT_ENUM | type: leaf`
96
+
97
+ - All elements of $.context.location.country.code must be in ["IND"]
98
+
99
+ > **Skip if:**
100
+ > - $.context.location.country.code is not in the payload
101
+
102
+ **VALID_CONTEXT_DOMAIN**
103
+ `group: STATUS_CONTEXT > CONTEXT_ENUM | type: leaf`
104
+
105
+ - All elements of $.context.domain must be in ["ONDC:FIS12"]
106
+
107
+ > **Skip if:**
108
+ > - $.context.domain is not in the payload
109
+
110
+ ### CONTEXT_REGEX
111
+
112
+ This is a group of **7** sub-validation(s) that all must pass: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, and REGEX_CONTEXT_BPP_URI.
113
+
114
+ ---
115
+
116
+ **REGEX_CONTEXT_LOCATION_CITY_CODE**
117
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
118
+
119
+ - All elements of $.context.location.city.code must follow every regex in ["(\\*)|(^std\\:[0-9]{2,4}$)"]
120
+
121
+ > **Skip if:**
122
+ > - $.context.location.city.code is not in the payload
123
+
124
+ **REGEX_CONTEXT_TIMESTAMP_1**
125
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
126
+
127
+ - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})$"]
128
+
129
+ > **Skip if:**
130
+ > - $.context.timestamp is not in the payload
131
+
132
+ **REGEX_CONTEXT_BAP_ID**
133
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
134
+
135
+ - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http|https|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"]
136
+
137
+ > **Skip if:**
138
+ > - $.context.bap_id is not in the payload
139
+
140
+ **REGEX_CONTEXT_BAP_URI**
141
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
142
+
143
+ - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"]
144
+
145
+ > **Skip if:**
146
+ > - $.context.bap_uri is not in the payload
147
+
148
+ **REQUIRED_CONTEXT_TTL**
149
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
150
+
151
+ - All elements of $.context.ttl must follow every regex in ["^P(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"]
152
+
153
+ > **Skip if:**
154
+ > - $.context.ttl is not in the payload
155
+
156
+ **REGEX_CONTEXT_BPP_ID**
157
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
158
+
159
+ - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http|https|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"]
160
+
161
+ > **Skip if:**
162
+ > - $.context.bpp_id is not in the payload
163
+
164
+ **REGEX_CONTEXT_BPP_URI**
165
+ `group: STATUS_CONTEXT > CONTEXT_REGEX | type: leaf`
166
+
167
+ - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"]
168
+
169
+ > **Skip if:**
170
+ > - $.context.bpp_uri is not in the payload
171
+
172
+ ---
173
+
174
+ ## REQUIRED_ORDER_ID
175
+
176
+ `group: top-level | type: leaf`
177
+
178
+ - $.message.order_id must be present in the payload