NONRTRIC-946: Add support for Kong routes
[nonrtric/plt/sme.git] / servicemanager / internal / common / common.gen.go
1 // Package common provides primitives to interact with the openapi HTTP API.
2 //
3 // Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
4 package common
5
6 import (
7         "bytes"
8         "compress/gzip"
9         "encoding/base64"
10         "fmt"
11         "net/url"
12         "path"
13         "strings"
14
15         "github.com/getkin/kin-openapi/openapi3"
16         externalRef0 "oransc.org/nonrtric/servicemanager/internal/common29571"
17 )
18
19 // Defines values for AfResultStatus.
20 const (
21         AfResultStatusOTHER AfResultStatus = "OTHER"
22
23         AfResultStatusRELOCNOALLOWED AfResultStatus = "RELOC_NO_ALLOWED"
24
25         AfResultStatusSUCCESS AfResultStatus = "SUCCESS"
26
27         AfResultStatusTEMPORARYCONGESTION AfResultStatus = "TEMPORARY_CONGESTION"
28 )
29
30 // Defines values for FlowDirection.
31 const (
32         FlowDirectionBIDIRECTIONAL FlowDirection = "BIDIRECTIONAL"
33
34         FlowDirectionDOWNLINK FlowDirection = "DOWNLINK"
35
36         FlowDirectionUNSPECIFIED FlowDirection = "UNSPECIFIED"
37
38         FlowDirectionUPLINK FlowDirection = "UPLINK"
39 )
40
41 // Defines values for NotificationMethod.
42 const (
43         NotificationMethodONETIME NotificationMethod = "ONE_TIME"
44
45         NotificationMethodONEVENTDETECTION NotificationMethod = "ON_EVENT_DETECTION"
46
47         NotificationMethodPERIODIC NotificationMethod = "PERIODIC"
48 )
49
50 // Defines values for SupportedGADShapes.
51 const (
52         SupportedGADShapesELLIPSOIDARC SupportedGADShapes = "ELLIPSOID_ARC"
53
54         SupportedGADShapesLOCAL2DPOINTUNCERTAINTYELLIPSE SupportedGADShapes = "LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE"
55
56         SupportedGADShapesLOCAL3DPOINTUNCERTAINTYELLIPSOID SupportedGADShapes = "LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID"
57
58         SupportedGADShapesPOINT SupportedGADShapes = "POINT"
59
60         SupportedGADShapesPOINTALTITUDE SupportedGADShapes = "POINT_ALTITUDE"
61
62         SupportedGADShapesPOINTALTITUDEUNCERTAINTY SupportedGADShapes = "POINT_ALTITUDE_UNCERTAINTY"
63
64         SupportedGADShapesPOINTUNCERTAINTYCIRCLE SupportedGADShapes = "POINT_UNCERTAINTY_CIRCLE"
65
66         SupportedGADShapesPOINTUNCERTAINTYELLIPSE SupportedGADShapes = "POINT_UNCERTAINTY_ELLIPSE"
67
68         SupportedGADShapesPOLYGON SupportedGADShapes = "POLYGON"
69 )
70
71 // IP address and/or FQDN.
72 type AddrFqdn struct {
73         // Indicates an FQDN.
74         Fqdn *string `json:"fqdn,omitempty"`
75
76         // Contains an IP adresse.
77         IpAddr *externalRef0.IpAddr `json:"ipAddr,omitempty"`
78 }
79
80 // Identifies the result of application layer handling.
81 type AfResultInfo struct {
82         // Possible values are:
83         // - SUCCESS: The application layer is ready or the relocation is completed.
84         // - TEMPORARY_CONGESTION: The application relocation fails due to temporary congestion.
85         // - RELOC_NO_ALLOWED: The application relocation fails because application relocation is not allowed.
86         // - OTHER: The application relocation fails due to other reason.
87         AfStatus AfResultStatus `json:"afStatus"`
88
89         // Contains EAS IP replacement information.
90         EasIpReplaceInfos *[]externalRef0.EasIpReplacementInfo `json:"easIpReplaceInfos,omitempty"`
91
92         // At least one of the "routeInfo" attribute and the "routeProfId" attribute shall be included in the "RouteToLocation" data type.
93         TrafficRoute *externalRef0.RouteToLocation `json:"trafficRoute"`
94
95         // If present and set to "true" it indicates that buffering of uplink traffic to the target DNAI is needed.
96         UpBuffInd *bool `json:"upBuffInd,omitempty"`
97 }
98
99 // Possible values are:
100 // - SUCCESS: The application layer is ready or the relocation is completed.
101 // - TEMPORARY_CONGESTION: The application relocation fails due to temporary congestion.
102 // - RELOC_NO_ALLOWED: The application relocation fails because application relocation is not allowed.
103 // - OTHER: The application relocation fails due to other reason.
104 type AfResultStatus string
105
106 // Indicates value of altitude.
107 type Altitude float64
108
109 // Indicates value of angle.
110 type Angle int
111
112 // Indicates a Civic address.
113 type CivicAddress struct {
114         A1         *string `json:"A1,omitempty"`
115         A2         *string `json:"A2,omitempty"`
116         A3         *string `json:"A3,omitempty"`
117         A4         *string `json:"A4,omitempty"`
118         A5         *string `json:"A5,omitempty"`
119         A6         *string `json:"A6,omitempty"`
120         ADDCODE    *string `json:"ADDCODE,omitempty"`
121         BLD        *string `json:"BLD,omitempty"`
122         FLR        *string `json:"FLR,omitempty"`
123         HNO        *string `json:"HNO,omitempty"`
124         HNS        *string `json:"HNS,omitempty"`
125         LMK        *string `json:"LMK,omitempty"`
126         LOC        *string `json:"LOC,omitempty"`
127         NAM        *string `json:"NAM,omitempty"`
128         PC         *string `json:"PC,omitempty"`
129         PCN        *string `json:"PCN,omitempty"`
130         PLC        *string `json:"PLC,omitempty"`
131         POBOX      *string `json:"POBOX,omitempty"`
132         POD        *string `json:"POD,omitempty"`
133         POM        *string `json:"POM,omitempty"`
134         PRD        *string `json:"PRD,omitempty"`
135         PRM        *string `json:"PRM,omitempty"`
136         RD         *string `json:"RD,omitempty"`
137         RDBR       *string `json:"RDBR,omitempty"`
138         RDSEC      *string `json:"RDSEC,omitempty"`
139         RDSUBBR    *string `json:"RDSUBBR,omitempty"`
140         ROOM       *string `json:"ROOM,omitempty"`
141         SEAT       *string `json:"SEAT,omitempty"`
142         STS        *string `json:"STS,omitempty"`
143         UNIT       *string `json:"UNIT,omitempty"`
144         Country    *string `json:"country,omitempty"`
145         Method     *string `json:"method,omitempty"`
146         ProvidedBy *string `json:"providedBy,omitempty"`
147         UsageRules *string `json:"usageRules,omitempty"`
148 }
149
150 // Describes a communication failure detected by AMF
151 type CommunicationFailure struct {
152         NasReleaseCode *string `json:"nasReleaseCode,omitempty"`
153
154         // Represents the NGAP cause.
155         RanReleaseCode *externalRef0.NgApCause `json:"ranReleaseCode,omitempty"`
156 }
157
158 // Indicates value of confidence.
159 type Confidence int
160
161 // Represents the content version of some content.
162 type ContentVersion int
163
164 // EllipsoidArc defines model for EllipsoidArc.
165 type EllipsoidArc struct {
166         // Embedded struct due to allOf(#/components/schemas/GADShape)
167         GADShape `yaml:",inline"`
168         // Embedded fields due to inline allOf schema
169         // Indicates value of confidence.
170         Confidence Confidence `json:"confidence"`
171
172         // Indicates value of angle.
173         IncludedAngle Angle `json:"includedAngle"`
174
175         // Indicates value of the inner radius.
176         InnerRadius InnerRadius `json:"innerRadius"`
177
178         // Indicates value of angle.
179         OffsetAngle Angle `json:"offsetAngle"`
180
181         // Geographical coordinates.
182         Point GeographicalCoordinates `json:"point"`
183
184         // Indicates value of uncertainty.
185         UncertaintyRadius Uncertainty `json:"uncertaintyRadius"`
186 }
187
188 // Identifies an Ethernet flow.
189 type EthFlowDescription struct {
190         // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042.
191         DestMacAddr *externalRef0.MacAddr48 `json:"destMacAddr,omitempty"`
192
193         // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042.
194         DestMacAddrEnd *externalRef0.MacAddr48 `json:"destMacAddrEnd,omitempty"`
195         EthType        string                  `json:"ethType"`
196
197         // Defines a packet filter of an IP flow.
198         FDesc *FlowDescription `json:"fDesc,omitempty"`
199
200         // Possible values are
201         // - DOWNLINK: The corresponding filter applies for traffic to the UE.
202         // - UPLINK: The corresponding filter applies for traffic from the UE.
203         // - BIDIRECTIONAL: The corresponding filter applies for traffic both to and from the UE.
204         // - UNSPECIFIED: The corresponding filter applies for traffic to the UE (downlink), but has no specific direction declared. The service data flow detection shall apply the filter for uplink traffic as if the filter was bidirectional. The PCF shall not use the value UNSPECIFIED in filters created by the network in NW-initiated procedures. The PCF shall only include the value UNSPECIFIED in filters in UE-initiated procedures if the same value is received from the SMF.
205         FDir *FlowDirection `json:"fDir,omitempty"`
206
207         // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042.
208         SourceMacAddr *externalRef0.MacAddr48 `json:"sourceMacAddr,omitempty"`
209
210         // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042.
211         SrcMacAddrEnd *externalRef0.MacAddr48 `json:"srcMacAddrEnd,omitempty"`
212         VlanTags      *[]string               `json:"vlanTags,omitempty"`
213 }
214
215 // Defines a packet filter of an IP flow.
216 type FlowDescription string
217
218 // Possible values are
219 // - DOWNLINK: The corresponding filter applies for traffic to the UE.
220 // - UPLINK: The corresponding filter applies for traffic from the UE.
221 // - BIDIRECTIONAL: The corresponding filter applies for traffic both to and from the UE.
222 // - UNSPECIFIED: The corresponding filter applies for traffic to the UE (downlink), but has no specific direction declared. The service data flow detection shall apply the filter for uplink traffic as if the filter was bidirectional. The PCF shall not use the value UNSPECIFIED in filters created by the network in NW-initiated procedures. The PCF shall only include the value UNSPECIFIED in filters in UE-initiated procedures if the same value is received from the SMF.
223 type FlowDirection string
224
225 // Common base type for GAD shapes.
226 type GADShape struct {
227         // Indicates supported GAD shapes.
228         Shape SupportedGADShapes `json:"shape"`
229 }
230
231 // Geographic area specified by different shape.
232 type GeographicArea interface{}
233
234 // Geographical coordinates.
235 type GeographicalCoordinates struct {
236         Lat float64 `json:"lat"`
237         Lon float64 `json:"lon"`
238 }
239
240 // Indicates value of the inner radius.
241 type InnerRadius int32
242
243 // Range of IPv4 addresses
244 type Ipv4AddressRange struct {
245         // String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166.
246         End *externalRef0.Ipv4Addr `json:"end,omitempty"`
247
248         // String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166.
249         Start *externalRef0.Ipv4Addr `json:"start,omitempty"`
250 }
251
252 // Local2dPointUncertaintyEllipse defines model for Local2dPointUncertaintyEllipse.
253 type Local2dPointUncertaintyEllipse struct {
254         // Embedded struct due to allOf(#/components/schemas/GADShape)
255         GADShape `yaml:",inline"`
256         // Embedded fields due to inline allOf schema
257         // Indicates value of confidence.
258         Confidence Confidence `json:"confidence"`
259
260         // Indicates a Local origin in a reference system
261         LocalOrigin LocalOrigin `json:"localOrigin"`
262
263         // Relative Cartesian Location
264         Point RelativeCartesianLocation `json:"point"`
265
266         // Ellipse with uncertainty.
267         UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
268 }
269
270 // Local3dPointUncertaintyEllipsoid defines model for Local3dPointUncertaintyEllipsoid.
271 type Local3dPointUncertaintyEllipsoid struct {
272         // Embedded struct due to allOf(#/components/schemas/GADShape)
273         GADShape `yaml:",inline"`
274         // Embedded fields due to inline allOf schema
275         // Indicates value of confidence.
276         Confidence Confidence `json:"confidence"`
277
278         // Indicates a Local origin in a reference system
279         LocalOrigin LocalOrigin `json:"localOrigin"`
280
281         // Relative Cartesian Location
282         Point RelativeCartesianLocation `json:"point"`
283
284         // Ellipsoid with uncertainty
285         UncertaintyEllipsoid UncertaintyEllipsoid `json:"uncertaintyEllipsoid"`
286 }
287
288 // Indicates a Local origin in a reference system
289 type LocalOrigin struct {
290         CoordinateId *string `json:"coordinateId,omitempty"`
291
292         // Geographical coordinates.
293         Point *GeographicalCoordinates `json:"point,omitempty"`
294 }
295
296 // Describes a network area information in which the NF service consumer requests the number of UEs.
297 type NetworkAreaInfo struct {
298         // Contains a list of E-UTRA cell identities.
299         Ecgis *[]externalRef0.Ecgi `json:"ecgis,omitempty"`
300
301         // Contains a list of NG RAN nodes.
302         GRanNodeIds *[]externalRef0.GlobalRanNodeId `json:"gRanNodeIds,omitempty"`
303
304         // Contains a list of NR cell identities.
305         Ncgis *[]externalRef0.Ncgi `json:"ncgis,omitempty"`
306
307         // Contains a list of tracking area identities.
308         Tais *[]externalRef0.Tai `json:"tais,omitempty"`
309 }
310
311 // Possible values are:
312 // - PERIODIC
313 // - ONE_TIME
314 // - ON_EVENT_DETECTION
315 type NotificationMethod string
316
317 // Indicates value of orientation angle.
318 type Orientation int
319
320 // Point defines model for Point.
321 type Point struct {
322         // Embedded struct due to allOf(#/components/schemas/GADShape)
323         GADShape `yaml:",inline"`
324         // Embedded fields due to inline allOf schema
325         // Geographical coordinates.
326         Point GeographicalCoordinates `json:"point"`
327 }
328
329 // PointAltitude defines model for PointAltitude.
330 type PointAltitude struct {
331         // Embedded struct due to allOf(#/components/schemas/GADShape)
332         GADShape `yaml:",inline"`
333         // Embedded fields due to inline allOf schema
334         // Indicates value of altitude.
335         Altitude Altitude `json:"altitude"`
336
337         // Geographical coordinates.
338         Point GeographicalCoordinates `json:"point"`
339 }
340
341 // PointAltitudeUncertainty defines model for PointAltitudeUncertainty.
342 type PointAltitudeUncertainty struct {
343         // Embedded struct due to allOf(#/components/schemas/GADShape)
344         GADShape `yaml:",inline"`
345         // Embedded fields due to inline allOf schema
346         // Indicates value of altitude.
347         Altitude Altitude `json:"altitude"`
348
349         // Indicates value of confidence.
350         Confidence Confidence `json:"confidence"`
351
352         // Geographical coordinates.
353         Point GeographicalCoordinates `json:"point"`
354
355         // Indicates value of uncertainty.
356         UncertaintyAltitude Uncertainty `json:"uncertaintyAltitude"`
357
358         // Ellipse with uncertainty.
359         UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
360 }
361
362 // List of points.
363 type PointList []GeographicalCoordinates
364
365 // PointUncertaintyCircle defines model for PointUncertaintyCircle.
366 type PointUncertaintyCircle struct {
367         // Embedded struct due to allOf(#/components/schemas/GADShape)
368         GADShape `yaml:",inline"`
369         // Embedded fields due to inline allOf schema
370         // Geographical coordinates.
371         Point GeographicalCoordinates `json:"point"`
372
373         // Indicates value of uncertainty.
374         Uncertainty Uncertainty `json:"uncertainty"`
375 }
376
377 // PointUncertaintyEllipse defines model for PointUncertaintyEllipse.
378 type PointUncertaintyEllipse struct {
379         // Embedded struct due to allOf(#/components/schemas/GADShape)
380         GADShape `yaml:",inline"`
381         // Embedded fields due to inline allOf schema
382         // Indicates value of confidence.
383         Confidence Confidence `json:"confidence"`
384
385         // Geographical coordinates.
386         Point GeographicalCoordinates `json:"point"`
387
388         // Ellipse with uncertainty.
389         UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
390 }
391
392 // Polygon defines model for Polygon.
393 type Polygon struct {
394         // Embedded struct due to allOf(#/components/schemas/GADShape)
395         GADShape `yaml:",inline"`
396         // Embedded fields due to inline allOf schema
397         // List of points.
398         PointList PointList `json:"pointList"`
399 }
400
401 // Relative Cartesian Location
402 type RelativeCartesianLocation struct {
403         // string with format 'float' as defined in OpenAPI.
404         X externalRef0.Float `json:"x"`
405
406         // string with format 'float' as defined in OpenAPI.
407         Z *externalRef0.Float `json:"z,omitempty"`
408 }
409
410 // Represents the type of reporting that the subscription requires.
411 type ReportingInformation struct {
412         // indicating a time in seconds.
413         GrpRepTime *externalRef0.DurationSec `json:"grpRepTime,omitempty"`
414         ImmRep     *bool                     `json:"immRep,omitempty"`
415
416         // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
417         MaxReportNbr *externalRef0.Uinteger `json:"maxReportNbr,omitempty"`
418
419         // string with format 'date-time' as defined in OpenAPI.
420         MonDur *externalRef0.DateTime `json:"monDur,omitempty"`
421
422         // Possible values are:
423         // - ACTIVATE: The event notification is activated.
424         // - DEACTIVATE: The event notification is deactivated and shall be muted. The available
425         //    event(s) shall be stored.
426         // - RETRIEVAL: The event notification shall be sent to the NF service consumer(s),
427         //   after that, is muted again.
428         NotifFlag *externalRef0.NotificationFlag `json:"notifFlag,omitempty"`
429
430         // Possible values are:
431         // - PERIODIC
432         // - ONE_TIME
433         // - ON_EVENT_DETECTION
434         NotifMethod *NotificationMethod `json:"notifMethod,omitempty"`
435
436         // Criteria for partitioning the UEs before applying the sampling ratio.
437         PartitionCriteria *[]externalRef0.PartitioningCriteria `json:"partitionCriteria,omitempty"`
438
439         // indicating a time in seconds.
440         RepPeriod *externalRef0.DurationSec `json:"repPeriod,omitempty"`
441
442         // Unsigned integer indicating Sampling Ratio (see clauses 4.15.1 of 3GPP TS 23.502), expressed in percent.
443         SampRatio *externalRef0.SamplingRatio `json:"sampRatio,omitempty"`
444 }
445
446 // Indicates supported GAD shapes.
447 type SupportedGADShapes string
448
449 // Indicates TSC Traffic pattern.
450 type TscaiInputContainer struct {
451         // string with format 'date-time' as defined in OpenAPI.
452         BurstArrivalTime *externalRef0.DateTime `json:"burstArrivalTime,omitempty"`
453
454         // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
455         Periodicity *externalRef0.Uinteger `json:"periodicity,omitempty"`
456
457         // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
458         SurTimeInNumMsg *externalRef0.Uinteger `json:"surTimeInNumMsg,omitempty"`
459
460         // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
461         SurTimeInTime *externalRef0.Uinteger `json:"surTimeInTime,omitempty"`
462 }
463
464 // Indicates value of uncertainty.
465 type Uncertainty float32
466
467 // Ellipse with uncertainty.
468 type UncertaintyEllipse struct {
469         // Indicates value of orientation angle.
470         OrientationMajor Orientation `json:"orientationMajor"`
471
472         // Indicates value of uncertainty.
473         SemiMajor Uncertainty `json:"semiMajor"`
474
475         // Indicates value of uncertainty.
476         SemiMinor Uncertainty `json:"semiMinor"`
477 }
478
479 // Ellipsoid with uncertainty
480 type UncertaintyEllipsoid struct {
481         // Indicates value of orientation angle.
482         OrientationMajor Orientation `json:"orientationMajor"`
483
484         // Indicates value of uncertainty.
485         SemiMajor Uncertainty `json:"semiMajor"`
486
487         // Indicates value of uncertainty.
488         SemiMinor Uncertainty `json:"semiMinor"`
489
490         // Indicates value of uncertainty.
491         Vertical Uncertainty `json:"vertical"`
492 }
493
494 // Base64 encoded, gzipped, json marshaled Swagger object
495 var swaggerSpec = []string{
496
497         "H4sIAAAAAAAC/+xbbW/jNvL/KoT+/xd3gDe7m+z2Ie8UW0mFOrJPdtorukVASyObXYpUSSpZ3yLf/UDq",
498         "wXqgbMdJ0Tvg3ixiamY4nBnNzI+j/epEPM04A6akc/nVkdEGUmz+dONYXP8RM/13DDISJFOEM+fS8ecI",
499         "x7EAKRFm8Vsu0PU/JsGZM3IywTMQioCRkNi5WUwirEAz14xqm4Fz6UglCFs7TyOHZHp/zf3/AhLn0lku",
500         "zr//+O37+zFPU84mWOGzLU7p/73dHeBtqf1bv2B+eqoF89XvECkt2E1CkDlVPku4RbkYmCIJAYnUBpAw",
501         "pIgnCGcZ1WoTzhDFWxBog1lMCVv3z42ThcIqlw3trWpWqpTUTyMHsPSzEDKKI9AKyr6GY84UJkwiz10g",
502         "f45EQZ0CU4iwhIvUKKm1IgpSeaIJvYYmWrYx19PISQnzC7Hva+NiIfBWP1QCJwmJQp4rOHFfw7vkU17Y",
503         "WkvNs6s8SXwWW9yVoEyA1GfHLEYSFFIcfXKUyOGTg4g2SRVtaoMVWuVJAjrGtE/zjBL2GZVaa07tc4XF",
504         "GhSaBK6PiEQMIIb47BPbRemKcwqYmfgS8EdOBMTO5a87v/+2J+52odE+ypxLSVYU0AOmuX45BFx+Ym/Q",
505         "4m489haLS7TcgCUKiUQCcLxFXJQRS0vT6UfawBSU0f8NWnq381nohr/cj2fBjbdY+rOgL7chIcGEShTn",
506         "YGwDacYFFlsUcbYGaaJMiw296Wx8H8zu3el09rM3OULkCiKcy0EibXauEKaUP5a6z5Y/eOHxynK1AaEt",
507         "I42SzsgBlqfaSaU9nZFjM4czcrrHcUaO2bzh1V2acqkiKo9hX5ozDjU5pCTW72bxojqXTszzFQVn5KT4",
508         "C0m1jhfn337zrXnTit9vyoVyc5anKxBmc7amR+6sKc9am3zzrrHFu1o6YQrWhfgxeSCRWyT6vWkcGcqq",
509         "JvTzofte/9u33bl9+cK+/MG+/NG+/I19eTIZzyae9dnVdGJdv56G1vUfgtnA+sK6Pr390b4+G1vXA/fW",
510         "uj4fDywH9vXpAP3savbPgSeTgfUBhcIB+tBOP0AeTq7CgQcLbzz05O5qiGs2oO7Cc5f2B0u74+4C384Q",
511         "8ZwpsbU+S0FteGx9lAn+QGKIr+ycucRrCHNavDudx7aORpfVnJUZ8RoTmgtLVpiYXyvzvkZNDpM4cwEo",
512         "BgWRghittsi9ve69xgzLEChgCWNeZLye7gKzDskJLUCwdrOxLg9Dx2UJiYFFx6W+qCZv5b/37w7nP84U",
513         "MPUTCGmkdzcLoew9il4xKsjRQ0Gv95Y8rdcbXW5jD49SkklOYldEpnWkdJY4l7/ubxxv3MligzNwnkZf",
514         "O06KWtbZJ6RhR91vs4jmMcR1TdnbuBoiw8VAhDgmh5tdv0H6NHJ4kkhQz9st44SpQ9Q3wNcCZxsSYTrm",
515         "XMSE6YAwbxaLQOjmWW2P0/lux9Br9gpl2iawbdE+atfQo6bD+m3jb6NOzNXxglwRnZkIUptryh8nTbI9",
516         "qAYz5OneiIFCCeWP/Wodg1S3OHoB/Cq5P3yn9WuI84oW/qUSQW2WxkyWBJRoOxxya9deho+Io9iIgKhi",
517         "kjwXEbyiraSIXtdUDxSzJV4bv9ZosF+r8JcS053vBXidN6Dygw3tHAzJCSSEmWKU4eizDkZCFYiiWdW4",
518         "tgrOfj/WcsMxOErjh8ns52DqBz8WECLiQoDMOIs1FCy3NrgCJEo0lGpjwjvPgJC7+QkiEsHTppArf+KH",
519         "3lijDXf6TFkrrjZaJw12u3LvgsXcG/vXfoXAnn9I9LeYPzINiv8+QqtcoQ3WSAzJDCKiKePK7iiGiGIB",
520         "8ZnZSoJ4IBGgGCtsPFc2E5pSbjClZt+t2aZURCvQAeBYIpI0aR6xRCtSb4ppsdt8fF1K1ShR40jNU1T8",
521         "hhUQYaUgiSIBuGxtNC0D9cjFZ00R/PyGMKKIeZwJHkGcC5DdnTijW1Tm7sPbEYbuPKvc6oQSp5UMA+Ej",
522         "IA/QcOri9rqNW6sAdkZOEYbOyGmFkn6w08aKVuu+wXKrpDMLWmFtzG0Gxj037kSfPgOD6WKiGVJdTrnJ",
523         "dinOMi348qvjTaf+fDHzJ/duOB7Kn61ex+Aed3p/Prmfz/xgeX8XjL1w6frB8pf7Qpw3JGjKI0zP47mu",
524         "wI0SXciHWvTFsOiZP9kr/GJAOCexo4GQHyyH+OdlX1Bs7U6X/vJu4u2lri8RulxNzY+S0GxYKmHN04/9",
525         "cDzdr0xDxJiIiIJV0AEPDbtmPpv+cjMLhhnpdl1U17Ir2QY4NVFcNrydbkVW8byvci/yLONCQVy9ALJX",
526         "zAo5tlK2ayhdAdg06Wx7RJNeBILu0A9S9W3+XLbKwIf5KvseIb+Oy2dRt5rmA4ytlNDvdnem12UcV3Wo",
527         "yOMxSRIQGnEZ3521fdVu/nv5rkmIoh1lvx2m2ECOPfd13zeR5Jvv31lu6mjRqewR8v67lhTzsyOmE7Fa",
528         "5sioZ4tav43MDsJkXXMMlEHCMLXuKAlTF+e9K8qPhwC0nz18KO8PQ8zWlrJjlvX2/vzhQ3WBCLLnBDi5",
529         "Ha50MO21wkK9WI7tTuJARforgT3Vqs0EWRN2iHHaID0WbodAsSIPMMZCgSSYtSY3VlMcibjrlNaL+52W",
530         "oxqG57Zi8zxsbY6PzifIyESPRG1QQyyCOsc6B5uE/3m8bYxn+VzznOj1okE7xe8XB/xulCo9vzPu8Eyk",
531         "kMoNpcYDGAkw9SoCJLdSQdrLcrs65A/cHL/oAsyWuIICCOnOxj4Qb14bV6jJ1OLGrFkf73FDoo2pIsF1",
532         "DQcjzmSemkHcHznI8qK0qGc66995sgA5nWwfrcm+yTdGlEgzlffe3C1DF0VAKSLmkkvLePHsO1qTg7Pu",
533         "dYhZwGPw4+NUDW5Q6AaI8fjlCt5QvsK0VuCgruxogwbhaxszOMaYCh+pnxI4+kzYuozBV9NyiQ8paX17",
534         "uCJJOUa5rQc+x831517ozyb+2Ay3A+9+6d96xd/33k9esLyfeMsC2reuASo2Z+RUXObPLpMV/88EAabw",
535         "wCVxvynkO3rLCLndslo7wHmVsF5cDF+c+vp398+6bjcnOavP1Jz7v/hsuCFs7yBkh8f+DHuMdoo8yzSN",
536         "srn7wqFrqCYq/KtsdmpD9YpzJ/dItdsg+s9ppHteH+iibeqfPreyRIu5zrZ2XLs4mhKp+jlrWpYFI9Ra",
537         "BJ7rq90s5P3HZj246Betgaubvz7btVz2GjPOprhTnd30b2QsdWYz4n8CZH5F67/+2/oKQPegf0qkWzqo",
538         "uDF8tbCu3uSDF4qG0GoG8+SIg5a6m3MMw1bLhx0FKappUU3cxSpfTmw4rynHpof818sEdMzzxXoZGELG",
539         "hSJs7e9A28HvWcwYiCdIVMzFF7RmeJWvakZUbm+5Ol2LLIRsSdJTvwSa5MLouoDIfG2SpiFkDWRcf4hr",
540         "8nZxymB16ij+rtG4auL8VEETrMCcWkMvDRGuKV6fCp8aEMOIqWTu8Ma+F8mCUHSCw0LDJs7GgigQBFuw",
541         "V/nEDAJr+iIKQAN3tIKEi+Jr3G21LnGaUf3D+O2loGze2LbW9BCUFJDNQRAev07M6ROFeuFEcYvSIoUM",
542         "K4q0TKf2gDNZUXfGszVANMPJPcO/feO83XyuN8DcO5scdSbAR013j5zT2oDsUkaY+CzLVXlHAGKfzZaL",
543         "MVqWHxlkWCkQ5v9HsJxSvNItmxI5dLPXKhdSuUKQB0xfksMaySAzgUki0mrLTs1RMhdasM+CPL2V69eU",
544         "+ILz7uTZYr0DAw/eQDS6ktZEKjHVz3r9sJu62dtKWy8EvR6oX80alyG3+Hd+8HOx5mWLti2k5Ci+DvQz",
545         "fIQ9k6873a43bwoc9c/0236fte70h5rKrin/uy05ch605hGmf4YDatlH+eLJfHJbXNMronTmKr/cKUQV",
546         "3yk778/enb0zH9lmwHBGnEvnwizpyq820rnUme/p3wEAAP//LXRvvPw3AAA=",
547 }
548
549 // GetSwagger returns the content of the embedded swagger specification file
550 // or error if failed to decode
551 func decodeSpec() ([]byte, error) {
552         zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
553         if err != nil {
554                 return nil, fmt.Errorf("error base64 decoding spec: %s", err)
555         }
556         zr, err := gzip.NewReader(bytes.NewReader(zipped))
557         if err != nil {
558                 return nil, fmt.Errorf("error decompressing spec: %s", err)
559         }
560         var buf bytes.Buffer
561         _, err = buf.ReadFrom(zr)
562         if err != nil {
563                 return nil, fmt.Errorf("error decompressing spec: %s", err)
564         }
565
566         return buf.Bytes(), nil
567 }
568
569 var rawSpec = decodeSpecCached()
570
571 // a naive cached of a decoded swagger spec
572 func decodeSpecCached() func() ([]byte, error) {
573         data, err := decodeSpec()
574         return func() ([]byte, error) {
575                 return data, err
576         }
577 }
578
579 // Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
580 func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
581         var res = make(map[string]func() ([]byte, error))
582         if len(pathToFile) > 0 {
583                 res[pathToFile] = rawSpec
584         }
585
586         pathPrefix := path.Dir(pathToFile)
587
588         for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
589                 if _, ok := res[rawPath]; ok {
590                         // it is not possible to compare functions in golang, so always overwrite the old value
591                 }
592                 res[rawPath] = rawFunc
593         }
594         return res
595 }
596
597 // GetSwagger returns the Swagger specification corresponding to the generated code
598 // in this file. The external references of Swagger specification are resolved.
599 // The logic of resolving external references is tightly connected to "import-mapping" feature.
600 // Externally referenced files must be embedded in the corresponding golang packages.
601 // Urls can be supported but this task was out of the scope.
602 func GetSwagger() (swagger *openapi3.T, err error) {
603         var resolvePath = PathToRawSpec("")
604
605         loader := openapi3.NewLoader()
606         loader.IsExternalRefsAllowed = true
607         loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
608                 var pathToFile = url.String()
609                 pathToFile = path.Clean(pathToFile)
610                 getSpec, ok := resolvePath[pathToFile]
611                 if !ok {
612                         err1 := fmt.Errorf("path not found: %s", pathToFile)
613                         return nil, err1
614                 }
615                 return getSpec()
616         }
617         var specData []byte
618         specData, err = rawSpec()
619         if err != nil {
620                 return
621         }
622         swagger, err = loader.LoadFromData(specData)
623         if err != nil {
624                 return
625         }
626         return
627 }