/
acmt.032.001.04.xsd.go
528 lines (425 loc) · 23 KB
/
acmt.032.001.04.xsd.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
// Code generated by download. DO NOT EDIT.
package iso20022_acmt_032_001_04
import (
"bytes"
"encoding/base64"
"encoding/xml"
"time"
)
// May be one of MACC, MCCS, CMA1
type Algorithm10Code string
// May be one of ERS2
type Algorithm4Code string
// May be one of HS25, HS38, HS51
type Algorithm5Code string
// May be one of EA2C, E3DC
type Algorithm6Code string
// May be one of ERSA, RSAO
type Algorithm7Code string
// May be one of MGF1
type Algorithm8Code string
// May be one of EA2C, E3DC, DKP9, UKPT, UKA1
type Algorithm9Code string
type AlgorithmIdentification10 struct {
Algo Algorithm10Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
Param Parameter1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Param,omitempty"`
}
type AlgorithmIdentification4 struct {
Algo Algorithm4Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
}
type AlgorithmIdentification5 struct {
Algo Algorithm5Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
}
type AlgorithmIdentification6 struct {
Algo Algorithm6Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
Param Parameter1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Param,omitempty"`
}
type AlgorithmIdentification7 struct {
Algo Algorithm7Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
Param Parameter2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Param,omitempty"`
}
type AlgorithmIdentification8 struct {
Algo Algorithm8Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
Param Parameter3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Param,omitempty"`
}
type AlgorithmIdentification9 struct {
Algo Algorithm9Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Algo"`
Param Parameter1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Param,omitempty"`
}
// May be one of ATTD, SATT, UATT
type AttendanceContext1Code string
// May be one of CNAT, LATT, OATT, OUAT, CATT
type AttributeType1Code string
type AuthenticatedData3 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
Rcpt []Recipient3Choice `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Rcpt"`
MACAlgo AlgorithmIdentification10 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 MACAlgo"`
NcpsltdCntt EncapsulatedContent2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcpsltdCntt"`
MAC Max35Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 MAC"`
}
// May be one of TAGC, PHYS, BRCD, MGST, CICC, DFLE, CTLS, ECTL
type CardDataReading1Code string
// May be one of MNSG, NPIN, FCPN, FEPN, FDSG, FBIO, MNVR, FBIG, APKI, PKIS, CHDT, SCEC
type CardholderVerificationCapability1Code string
type CertificateIdentifier1 struct {
IssrAndSrlNb IssuerAndSerialNumber1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 IssrAndSrlNb"`
}
type CertificateIssuer1 struct {
RltvDstngshdNm []RelativeDistinguishedName1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 RltvDstngshdNm"`
}
type CommunicationCharacteristics2 struct {
ComTp POICommunicationType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 ComTp"`
RmotPty []PartyType7Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 RmotPty"`
Actv bool `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Actv"`
}
type ContentInformationType7 struct {
CnttTp ContentType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CnttTp"`
EnvlpdData EnvelopedData3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 EnvlpdData"`
}
type ContentInformationType9 struct {
CnttTp ContentType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CnttTp"`
EnvlpdData EnvelopedData3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 EnvlpdData,omitempty"`
AuthntcdData AuthenticatedData3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 AuthntcdData,omitempty"`
SgndData SignedData3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SgndData,omitempty"`
DgstdData DigestedData3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DgstdData,omitempty"`
}
// May be one of DATA, SIGN, EVLP, DGST, ECRP, AUTH
type ContentType1Code string
// May be one of AQPR, APPR, TXCP, AKCP, DLGT, MGTP, MRPR, SCPR, SWPK, STRP, TRPR, VDPR
type DataSetCategory3Code string
type DataSetIdentification3 struct {
Nm Max256Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Nm,omitempty"`
Tp DataSetCategory3Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Tp"`
Vrsn Max256Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
CreDtTm ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CreDtTm,omitempty"`
}
type DigestedData3 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
DgstAlgo []AlgorithmIdentification5 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DgstAlgo"`
NcpsltdCntt EncapsulatedContent2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcpsltdCntt"`
Dgst Max140Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Dgst"`
}
type DisplayCapabilities2 struct {
DispTp UserInterface2Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DispTp"`
NbOfLines float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NbOfLines"`
LineWidth float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 LineWidth"`
}
type Document struct {
StsRpt StatusReportV03 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 StsRpt"`
}
type EncapsulatedContent2 struct {
CnttTp ContentType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CnttTp"`
Cntt Max100KBinary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Cntt,omitempty"`
}
type EncryptedContent2 struct {
CnttTp ContentType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CnttTp"`
CnttNcrptnAlgo AlgorithmIdentification6 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CnttNcrptnAlgo"`
NcrptdData Max10000Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcrptdData"`
}
type EnvelopedData3 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
Rcpt []Recipient3Choice `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Rcpt"`
NcrptdCntt EncryptedContent2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcrptdCntt"`
}
type GenericIdentification35 struct {
Id Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id"`
Tp PartyType5Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Tp,omitempty"`
Issr PartyType6Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Issr,omitempty"`
ShrtNm Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 ShrtNm,omitempty"`
}
type GenericIdentification48 struct {
Id Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id"`
Vrsn Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn"`
Issr Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Issr"`
}
type Header4 struct {
DwnldTrf bool `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DwnldTrf"`
FrmtVrsn Max6Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 FrmtVrsn"`
XchgId Max3NumericText `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 XchgId"`
CreDtTm ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CreDtTm"`
InitgPty GenericIdentification35 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 InitgPty"`
RcptPty GenericIdentification35 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 RcptPty,omitempty"`
}
// Must match the pattern [a-z]{2,2}
type ISO2ALanguageCode string
type ISODateTime time.Time
func (t *ISODateTime) UnmarshalText(text []byte) error {
return (*xsdDateTime)(t).UnmarshalText(text)
}
func (t ISODateTime) MarshalText() ([]byte, error) {
return xsdDateTime(t).MarshalText()
}
type IssuerAndSerialNumber1 struct {
Issr CertificateIssuer1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Issr"`
SrlNb Max35Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SrlNb"`
}
type KEK3 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
KEKId KEKIdentifier1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KEKId"`
KeyNcrptnAlgo AlgorithmIdentification9 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyNcrptnAlgo"`
NcrptdKey Max140Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcrptdKey"`
}
type KEKIdentifier1 struct {
KeyId Max140Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyId"`
KeyVrsn string `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyVrsn"`
DerivtnId Min5Max16Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DerivtnId,omitempty"`
}
type KeyTransport3 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
RcptId CertificateIdentifier1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 RcptId"`
KeyNcrptnAlgo AlgorithmIdentification7 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyNcrptnAlgo"`
NcrptdKey Max3000Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcrptdKey"`
}
type Max10000Binary []byte
func (t *Max10000Binary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Max10000Binary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
type Max100KBinary []byte
func (t *Max100KBinary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Max100KBinary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
type Max140Binary []byte
func (t *Max140Binary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Max140Binary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
// May be no more than 140 items long
type Max140Text string
// May be no more than 256 items long
type Max256Text string
type Max3000Binary []byte
func (t *Max3000Binary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Max3000Binary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
type Max35Binary []byte
func (t *Max35Binary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Max35Binary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
// May be no more than 35 items long
type Max35Text string
// Must match the pattern [0-9]{1,3}
type Max3NumericText string
type Max500Binary []byte
func (t *Max500Binary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Max500Binary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
// May be no more than 6 items long
type Max6Text string
// May be no more than 70 items long
type Max70Text string
// Must match the pattern [0-9]{1,9}
type Max9NumericText string
type MemoryCharacteristics1 struct {
Id Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id"`
TtlSz float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 TtlSz"`
FreeSz float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 FreeSz"`
Unit MemoryUnit1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Unit"`
}
// May be one of BYTE, EXAB, GIGA, KILO, MEGA, PETA, TERA
type MemoryUnit1Code string
type Min5Max16Binary []byte
func (t *Min5Max16Binary) UnmarshalText(text []byte) error {
return (*xsdBase64Binary)(t).UnmarshalText(text)
}
func (t Min5Max16Binary) MarshalText() ([]byte, error) {
return xsdBase64Binary(t).MarshalText()
}
// May be one of OFLN, ONLN, SMON
type OnLineCapability1Code string
// May be one of BLTH, ETHR, GPRS, GSMF, PSTN, RS23, USBD, USBH, WIFI
type POICommunicationType1Code string
// May be one of APPL, CERT, EVAL
type POIComponentAssessment1Code string
// May be one of WAIT, OUTD, OPER, DACT
type POIComponentStatus1Code string
// May be one of AQPP, APPR, TLPR, SCPR, SERV, TERM, DVCE, SECM, APLI, EMVK, EMVO, MDWR, DRVR, OPST, MRPR
type POIComponentType3Code string
type Parameter1 struct {
InitlstnVctr Max500Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 InitlstnVctr,omitempty"`
}
type Parameter2 struct {
DgstAlgo Algorithm5Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DgstAlgo,omitempty"`
MskGnrtrAlgo AlgorithmIdentification8 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 MskGnrtrAlgo,omitempty"`
}
type Parameter3 struct {
DgstAlgo Algorithm5Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DgstAlgo,omitempty"`
}
// May be one of OPOI, ACCP, MERC, ACQR, ITAG, MTMG, TMGT
type PartyType5Code string
// May be one of ACCP, MERC, ACQR, ITAG, MTMG, TMGT
type PartyType6Code string
// May be one of ACQR, ITAG, PCPT, TMGT, SALE
type PartyType7Code string
type PointOfInteractionCapabilities2 struct {
CardRdngCpblties []CardDataReading1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CardRdngCpblties,omitempty"`
CrdhldrVrfctnCpblties []CardholderVerificationCapability1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 CrdhldrVrfctnCpblties,omitempty"`
OnLineCpblties OnLineCapability1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 OnLineCpblties,omitempty"`
DispCpblties []DisplayCapabilities2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DispCpblties,omitempty"`
PrtLineWidth float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 PrtLineWidth,omitempty"`
AvlblLang []ISO2ALanguageCode `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 AvlblLang,omitempty"`
}
type PointOfInteractionComponent4 struct {
Tp POIComponentType3Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Tp"`
Id PointOfInteractionComponentIdentification1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id"`
Sts PointOfInteractionComponentStatus1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Sts,omitempty"`
StdCmplc []GenericIdentification48 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 StdCmplc,omitempty"`
Chrtcs PointOfInteractionComponentCharacteristics2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Chrtcs,omitempty"`
Assmnt []PointOfInteractionComponentAssessment1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Assmnt,omitempty"`
}
type PointOfInteractionComponentAssessment1 struct {
Tp POIComponentAssessment1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Tp"`
Assgnr []Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Assgnr"`
DlvryDt ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DlvryDt,omitempty"`
XprtnDt ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 XprtnDt,omitempty"`
Nb Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Nb"`
}
type PointOfInteractionComponentCharacteristics2 struct {
Mmry []MemoryCharacteristics1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Mmry,omitempty"`
Com []CommunicationCharacteristics2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Com,omitempty"`
SctyAccsMdls float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SctyAccsMdls,omitempty"`
SbcbrIdntyMdls float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SbcbrIdntyMdls,omitempty"`
KeyChckVal Max35Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyChckVal,omitempty"`
}
type PointOfInteractionComponentIdentification1 struct {
ItmNb Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 ItmNb,omitempty"`
PrvdrId Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 PrvdrId,omitempty"`
Id Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id,omitempty"`
SrlNb Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SrlNb,omitempty"`
}
type PointOfInteractionComponentStatus1 struct {
VrsnNb Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 VrsnNb,omitempty"`
Sts POIComponentStatus1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Sts,omitempty"`
}
type Recipient3Choice struct {
KeyTrnsprt KeyTransport3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyTrnsprt,omitempty"`
KEK KEK3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KEK,omitempty"`
KeyIdr KEKIdentifier1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 KeyIdr,omitempty"`
}
type RelativeDistinguishedName1 struct {
AttrTp AttributeType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 AttrTp"`
AttrVal Max140Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 AttrVal"`
}
type SignedData3 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
DgstAlgo []AlgorithmIdentification5 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DgstAlgo"`
NcpsltdCntt EncapsulatedContent2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcpsltdCntt"`
Cert []Max3000Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Cert,omitempty"`
Sgnr []Signer2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Sgnr"`
}
type Signer2 struct {
Vrsn float64 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Vrsn,omitempty"`
SgnrId CertificateIdentifier1 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SgnrId"`
DgstAlgo AlgorithmIdentification5 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DgstAlgo"`
SgntrAlgo AlgorithmIdentification4 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SgntrAlgo"`
Sgntr Max500Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Sgntr"`
}
type StatusReport3 struct {
POIId GenericIdentification35 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 POIId"`
TermnlMgrId GenericIdentification35 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 TermnlMgrId,omitempty"`
DataSet []TerminalManagementDataSet9 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DataSet"`
}
type StatusReportContent3 struct {
POICpblties PointOfInteractionCapabilities2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 POICpblties,omitempty"`
POICmpnt []PointOfInteractionComponent4 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 POICmpnt,omitempty"`
AttndncCntxt AttendanceContext1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 AttndncCntxt,omitempty"`
POIDtTm ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 POIDtTm"`
DataSetReqrd TerminalManagementDataSet8 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DataSetReqrd,omitempty"`
Evt []TMSEvent2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Evt,omitempty"`
Errs []Max140Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Errs,omitempty"`
}
type StatusReportV03 struct {
Hdr Header4 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Hdr"`
StsRpt StatusReport3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 StsRpt"`
SctyTrlr ContentInformationType9 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SctyTrlr"`
}
type TMSActionIdentification2 struct {
ActnTp TerminalManagementAction1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 ActnTp"`
DataSetId DataSetIdentification3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 DataSetId,omitempty"`
}
type TMSEvent2 struct {
TmStmp ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 TmStmp"`
Rslt TerminalManagementActionResult1Code `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Rslt"`
ActnId TMSActionIdentification2 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 ActnId"`
AddtlErrInf Max70Text `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 AddtlErrInf,omitempty"`
}
// May be one of ACTV, DCTV, DELT, DWNL, INST, RSTR, UPLD
type TerminalManagementAction1Code string
// May be one of ACCD, CNTE, FMTE, INVC, LENE, OVER, MISS, NSUP, SIGE, SUCC, SYNE, TIMO, UKDT, UKRF
type TerminalManagementActionResult1Code string
type TerminalManagementDataSet8 struct {
Id DataSetIdentification3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id"`
POIChllng Max140Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 POIChllng,omitempty"`
TMChllng Max140Binary `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 TMChllng,omitempty"`
NcrptdKey ContentInformationType7 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 NcrptdKey,omitempty"`
}
type TerminalManagementDataSet9 struct {
Id DataSetIdentification3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Id"`
SeqCntr Max9NumericText `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 SeqCntr,omitempty"`
Cntt StatusReportContent3 `xml:"urn:iso:std:iso:20022:tech:xsd:catm.001.001.03 Cntt"`
}
// May be one of MDSP, CDSP
type UserInterface2Code string
type xsdBase64Binary []byte
func (b *xsdBase64Binary) UnmarshalText(text []byte) (err error) {
*b, err = base64.StdEncoding.DecodeString(string(text))
return
}
func (b xsdBase64Binary) MarshalText() ([]byte, error) {
var buf bytes.Buffer
enc := base64.NewEncoder(base64.StdEncoding, &buf)
enc.Write([]byte(b))
enc.Close()
return buf.Bytes(), nil
}
type xsdDateTime time.Time
func (t *xsdDateTime) UnmarshalText(text []byte) error {
return _unmarshalTime(text, (*time.Time)(t), "2006-01-02T15:04:05.999999999")
}
func (t xsdDateTime) MarshalText() ([]byte, error) {
return _marshalTime((time.Time)(t), "2006-01-02T15:04:05.999999999")
}
func (t xsdDateTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if (time.Time)(t).IsZero() {
return nil
}
m, err := t.MarshalText()
if err != nil {
return err
}
return e.EncodeElement(m, start)
}
func (t xsdDateTime) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
if (time.Time)(t).IsZero() {
return xml.Attr{}, nil
}
m, err := t.MarshalText()
return xml.Attr{Name: name, Value: string(m)}, err
}
func _unmarshalTime(text []byte, t *time.Time, format string) (err error) {
s := string(bytes.TrimSpace(text))
*t, err = time.Parse(format, s)
if _, ok := err.(*time.ParseError); ok {
*t, err = time.Parse(format+"Z07:00", s)
}
return err
}
func _marshalTime(t time.Time, format string) ([]byte, error) {
return []byte(t.Format(format + "Z07:00")), nil
}