NONRTRIC-946: Add support for Kong routes
[nonrtric/plt/sme.git] / servicemanager / internal / publishserviceapi / publishserviceapi-types.gen.go
1 // Package publishserviceapi 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 publishserviceapi
5
6 import (
7         externalRef0 "oransc.org/nonrtric/servicemanager/internal/common"
8         externalRef1 "oransc.org/nonrtric/servicemanager/internal/common29122"
9         externalRef2 "oransc.org/nonrtric/servicemanager/internal/common29571"
10 )
11
12 // Defines values for CommunicationType.
13 const (
14         CommunicationTypeREQUESTRESPONSE CommunicationType = "REQUEST_RESPONSE"
15
16         CommunicationTypeSUBSCRIBENOTIFY CommunicationType = "SUBSCRIBE_NOTIFY"
17 )
18
19 // Defines values for DataFormat.
20 const (
21         DataFormatJSON DataFormat = "JSON"
22 )
23
24 // Defines values for Operation.
25 const (
26         OperationDELETE Operation = "DELETE"
27
28         OperationGET Operation = "GET"
29
30         OperationPATCH Operation = "PATCH"
31
32         OperationPOST Operation = "POST"
33
34         OperationPUT Operation = "PUT"
35 )
36
37 // Defines values for Protocol.
38 const (
39         ProtocolHTTP11 Protocol = "HTTP_1_1"
40
41         ProtocolHTTP2 Protocol = "HTTP_2"
42 )
43
44 // Defines values for SecurityMethod.
45 const (
46         SecurityMethodOAUTH SecurityMethod = "OAUTH"
47
48         SecurityMethodPKI SecurityMethod = "PKI"
49
50         SecurityMethodPSK SecurityMethod = "PSK"
51 )
52
53 // The location information (e.g. civic address, GPS coordinates, data center ID) where the AEF providing the service API is located.
54 type AefLocation struct {
55         // Indicates a Civic address.
56         CivicAddr *externalRef0.CivicAddress `json:"civicAddr,omitempty"`
57
58         // Identifies the data center where the AEF providing the service API is located.
59         DcId *string `json:"dcId,omitempty"`
60
61         // Geographic area specified by different shape.
62         GeoArea *externalRef0.GeographicArea `json:"geoArea,omitempty"`
63 }
64
65 // Represents the AEF profile data.
66 type AefProfile struct {
67         // Identifier of the API exposing function
68         AefId string `json:"aefId"`
69
70         // The location information (e.g. civic address, GPS coordinates, data center ID) where the AEF providing the service API is located.
71         AefLocation *AefLocation `json:"aefLocation,omitempty"`
72
73         // Possible values are:
74         // - JSON: JavaScript Object Notation
75         DataFormat *DataFormat `json:"dataFormat,omitempty"`
76
77         // Domain to which API belongs to
78         DomainName *string `json:"domainName,omitempty"`
79
80         // Interface details
81         InterfaceDescriptions *[]InterfaceDescription `json:"interfaceDescriptions,omitempty"`
82
83         // Possible values are:
84         // - HTTP_1_1: HTTP version 1.1
85         // - HTTP_2: HTTP version 2
86         Protocol *Protocol `json:"protocol,omitempty"`
87
88         // Security methods supported by the AEF
89         SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
90
91         // API version
92         Versions []Version `json:"versions"`
93 }
94
95 // Possible values are:
96 // - REQUEST_RESPONSE: The communication is of the type request-response
97 // - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify
98 type CommunicationType string
99
100 // Represents the description of a custom operation.
101 type CustomOperation struct {
102         // Possible values are:
103         // - REQUEST_RESPONSE: The communication is of the type request-response
104         // - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify
105         CommType CommunicationType `json:"commType"`
106
107         // it is set as {custOpName} part of the URI structure for a custom operation without resource association as defined in clause 5.2.4 of 3GPP TS 29.122.
108         CustOpName string `json:"custOpName"`
109
110         // Text description of the custom operation
111         Description *string `json:"description,omitempty"`
112
113         // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
114         Operations *[]Operation `json:"operations,omitempty"`
115 }
116
117 // Possible values are:
118 // - JSON: JavaScript Object Notation
119 type DataFormat string
120
121 // Represents the description of an API's interface.
122 type InterfaceDescription struct {
123         // string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in IETF RFC 1166.
124         Ipv4Addr *externalRef1.Ipv4Addr `json:"ipv4Addr,omitempty"`
125
126         // string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used.
127         Ipv6Addr *externalRef1.Ipv6Addr `json:"ipv6Addr,omitempty"`
128
129         // Unsigned integer with valid values between 0 and 65535.
130         Port *externalRef1.Port `json:"port,omitempty"`
131
132         // Security methods supported by the interface, it take precedence over the security methods provided in AefProfile, for this specific interface.
133         SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
134 }
135
136 // Possible values are:
137 // - GET: HTTP GET method
138 // - POST: HTTP POST method
139 // - PUT: HTTP PUT method
140 // - PATCH: HTTP PATCH method
141 // - DELETE: HTTP DELETE method
142 type Operation string
143
144 // Possible values are:
145 // - HTTP_1_1: HTTP version 1.1
146 // - HTTP_2: HTTP version 2
147 type Protocol string
148
149 // Represents the published API path within the same CAPIF provider domain.
150 type PublishedApiPath struct {
151         // A list of CCF identifiers where the service API is already published.
152         CcfIds *[]string `json:"ccfIds,omitempty"`
153 }
154
155 // Represents the API resource data.
156 type Resource struct {
157         // Possible values are:
158         // - REQUEST_RESPONSE: The communication is of the type request-response
159         // - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify
160         CommType CommunicationType `json:"commType"`
161
162         // it is set as {custOpName} part of the URI structure for a custom operation associated with a resource as defined in clause 5.2.4 of 3GPP TS 29.122.
163         CustOpName *string `json:"custOpName,omitempty"`
164
165         // Text description of the API resource
166         Description *string `json:"description,omitempty"`
167
168         // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
169         Operations *[]Operation `json:"operations,omitempty"`
170
171         // Resource name
172         ResourceName string `json:"resourceName"`
173
174         // Relative URI of the API resource, it is set as {apiSpecificSuffixes} part of the URI structure as defined in clause 5.2.4 of 3GPP TS 29.122.
175         Uri string `json:"uri"`
176 }
177
178 // Possible values are:
179 // - PSK: Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122
180 // - PKI: Security method 2 (Using PKI) as described in 3GPP TS 33.122
181 // - OAUTH: Security method 3 (TLS with OAuth token) as described in 3GPP TS 33.122
182 type SecurityMethod string
183
184 // Represents the description of a service API as published by the APF.
185 type ServiceAPIDescription struct {
186         // AEF profile information, which includes the exposed API details (e.g. protocol).
187         AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
188
189         // API identifier assigned by the CAPIF core function to the published service API. Shall not be present in the HTTP POST request from the API publishing function to the CAPIF core function. Shall be present in the HTTP POST response from the CAPIF core function to the API publishing function and in the HTTP GET response from the CAPIF core function to the API invoker (discovery API).
190         ApiId *string `json:"apiId,omitempty"`
191
192         // API name, it is set as {apiName} part of the URI structure as defined in clause 5.2.4 of 3GPP TS 29.122.
193         ApiName string `json:"apiName"`
194
195         // A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of "0" to "9",  "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.
196         ApiSuppFeats *externalRef2.SupportedFeatures `json:"apiSuppFeats,omitempty"`
197
198         // CAPIF core function identifier.
199         CcfId *string `json:"ccfId,omitempty"`
200
201         // Text description of the API
202         Description *string `json:"description,omitempty"`
203
204         // Represents the published API path within the same CAPIF provider domain.
205         PubApiPath         *PublishedApiPath `json:"pubApiPath,omitempty"`
206         ServiceAPICategory *string           `json:"serviceAPICategory,omitempty"`
207
208         // Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains.
209         ShareableInfo *ShareableInformation `json:"shareableInfo,omitempty"`
210
211         // A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of "0" to "9",  "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.
212         SupportedFeatures *externalRef2.SupportedFeatures `json:"supportedFeatures,omitempty"`
213 }
214
215 // Represents the parameters to request the modification of an APF published API resource.
216 type ServiceAPIDescriptionPatch struct {
217         AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
218
219         // A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of "0" to "9",  "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.
220         ApiSuppFeats *externalRef2.SupportedFeatures `json:"apiSuppFeats,omitempty"`
221
222         // CAPIF core function identifier.
223         CcfId *string `json:"ccfId,omitempty"`
224
225         // Text description of the API
226         Description *string `json:"description,omitempty"`
227
228         // Represents the published API path within the same CAPIF provider domain.
229         PubApiPath         *PublishedApiPath `json:"pubApiPath,omitempty"`
230         ServiceAPICategory *string           `json:"serviceAPICategory,omitempty"`
231
232         // Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains.
233         ShareableInfo *ShareableInformation `json:"shareableInfo,omitempty"`
234 }
235
236 // Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains.
237 type ShareableInformation struct {
238         // List of CAPIF provider domains to which the service API information to be shared.
239         CapifProvDoms *[]string `json:"capifProvDoms,omitempty"`
240
241         // Set to "true" indicates that the service API and/or the service API category can be shared to the list of CAPIF provider domain information. Otherwise set to "false".
242         IsShareable bool `json:"isShareable"`
243 }
244
245 // Represents the API version information.
246 type Version struct {
247         // API major version in URI (e.g. v1)
248         ApiVersion string `json:"apiVersion"`
249
250         // Custom operations without resource association.
251         CustOperations *[]CustomOperation `json:"custOperations,omitempty"`
252
253         // string with format "date-time" as defined in OpenAPI.
254         Expiry *externalRef1.DateTime `json:"expiry,omitempty"`
255
256         // Resources supported by the API.
257         Resources *[]Resource `json:"resources,omitempty"`
258 }
259
260 // PostApfIdServiceApisJSONBody defines parameters for PostApfIdServiceApis.
261 type PostApfIdServiceApisJSONBody ServiceAPIDescription
262
263 // PutApfIdServiceApisServiceApiIdJSONBody defines parameters for PutApfIdServiceApisServiceApiId.
264 type PutApfIdServiceApisServiceApiIdJSONBody ServiceAPIDescription
265
266 // PostApfIdServiceApisJSONRequestBody defines body for PostApfIdServiceApis for application/json ContentType.
267 type PostApfIdServiceApisJSONRequestBody PostApfIdServiceApisJSONBody
268
269 // PutApfIdServiceApisServiceApiIdJSONRequestBody defines body for PutApfIdServiceApisServiceApiId for application/json ContentType.
270 type PutApfIdServiceApisServiceApiIdJSONRequestBody PutApfIdServiceApisServiceApiIdJSONBody