Add generated code
[nonrtric/plt/sme.git] / capifcore / 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/capifcore/internal/common"
8         externalRef1 "oransc.org/nonrtric/capifcore/internal/common29122"
9         externalRef2 "oransc.org/nonrtric/capifcore/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 - JSON: JavaScript Object Notation
74         DataFormat *DataFormat `json:"dataFormat,omitempty"`
75
76         // Domain to which API belongs to
77         DomainName *string `json:"domainName,omitempty"`
78
79         // Interface details
80         InterfaceDescriptions *[]InterfaceDescription `json:"interfaceDescriptions,omitempty"`
81
82         // Possible values are - HTTP_1_1: HTTP version 1.1 - HTTP_2: HTTP version 2
83         Protocol *Protocol `json:"protocol,omitempty"`
84
85         // Security methods supported by the AEF
86         SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
87
88         // API version
89         Versions []Version `json:"versions"`
90 }
91
92 // Possible values are - REQUEST_RESPONSE: The communication is of the type request-response - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify
93 type CommunicationType string
94
95 // Represents the description of a custom operation.
96 type CustomOperation struct {
97         // Possible values are - REQUEST_RESPONSE: The communication is of the type request-response - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify
98         CommType CommunicationType `json:"commType"`
99
100         // it is set as {custOpName} part of the URI structure for a custom operation without resource association as defined in subclause 4.4 of 3GPP TS 29.501.
101         CustOpName string `json:"custOpName"`
102
103         // Text description of the custom operation
104         Description *string `json:"description,omitempty"`
105
106         // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
107         Operations *[]Operation `json:"operations,omitempty"`
108 }
109
110 // Possible values are - JSON: JavaScript Object Notation
111 type DataFormat string
112
113 // Represents the description of an API's interface.
114 type InterfaceDescription struct {
115         // string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in IETF RFC 1166.
116         Ipv4Addr *externalRef1.Ipv4Addr `json:"ipv4Addr,omitempty"`
117
118         // 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.
119         Ipv6Addr *externalRef1.Ipv6Addr `json:"ipv6Addr,omitempty"`
120
121         // Unsigned integer with valid values between 0 and 65535.
122         Port *externalRef1.Port `json:"port,omitempty"`
123
124         // Security methods supported by the interface, it take precedence over the security methods provided in AefProfile, for this specific interface.
125         SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
126 }
127
128 // Possible values are - GET: HTTP GET method - POST: HTTP POST method - PUT: HTTP PUT method - PATCH: HTTP PATCH method - DELETE: HTTP DELETE method
129 type Operation string
130
131 // Possible values are - HTTP_1_1: HTTP version 1.1 - HTTP_2: HTTP version 2
132 type Protocol string
133
134 // Represents the published API path within the same CAPIF provider domain.
135 type PublishedApiPath struct {
136         // A list of CCF identifiers where the service API is already published.
137         CcfIds *[]string `json:"ccfIds,omitempty"`
138 }
139
140 // Represents the API resource data.
141 type Resource struct {
142         // Possible values are - REQUEST_RESPONSE: The communication is of the type request-response - SUBSCRIBE_NOTIFY: The communication is of the type subscribe-notify
143         CommType CommunicationType `json:"commType"`
144
145         // it is set as {custOpName} part of the URI structure for a custom operation associated with a resource as defined in subclause 4.4 of 3GPP TS 29.501.
146         CustOpName *string `json:"custOpName,omitempty"`
147
148         // Text description of the API resource
149         Description *string `json:"description,omitempty"`
150
151         // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
152         Operations *[]Operation `json:"operations,omitempty"`
153
154         // Resource name
155         ResourceName string `json:"resourceName"`
156
157         // Relative URI of the API resource, it is set as {apiSpecificResourceUriPart} part of the URI structure as defined in subclause 4.4 of 3GPP TS 29.501.
158         Uri string `json:"uri"`
159 }
160
161 // Possible values are - PSK: Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122 - PKI: Security method 2 (Using PKI) as described in 3GPP TS 33.122 - OAUTH: Security method 3 (TLS with OAuth token) as described in 3GPP TS 33.122
162 type SecurityMethod string
163
164 // Represents the description of a service API as published by the APF.
165 type ServiceAPIDescription struct {
166         // AEF profile information, which includes the exposed API details (e.g. protocol).
167         AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
168
169         // 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).
170         ApiId *string `json:"apiId,omitempty"`
171
172         // API name, it is set as {apiName} part of the URI structure as defined in subclause 4.4 of 3GPP TS 29.501.
173         ApiName string `json:"apiName"`
174
175         // 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.
176         ApiSuppFeats *externalRef2.SupportedFeatures `json:"apiSuppFeats,omitempty"`
177
178         // CAPIF core function identifier.
179         CcfId *string `json:"ccfId,omitempty"`
180
181         // Text description of the API
182         Description *string `json:"description,omitempty"`
183
184         // Represents the published API path within the same CAPIF provider domain.
185         PubApiPath         *PublishedApiPath `json:"pubApiPath,omitempty"`
186         ServiceAPICategory *string           `json:"serviceAPICategory,omitempty"`
187
188         // Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains.
189         ShareableInfo *ShareableInformation `json:"shareableInfo,omitempty"`
190
191         // 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.
192         SupportedFeatures *externalRef2.SupportedFeatures `json:"supportedFeatures,omitempty"`
193 }
194
195 // Represents the parameters to request the modification of an APF published API resource.
196 type ServiceAPIDescriptionPatch struct {
197         AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
198
199         // 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.
200         ApiSuppFeats *externalRef2.SupportedFeatures `json:"apiSuppFeats,omitempty"`
201
202         // CAPIF core function identifier.
203         CcfId *string `json:"ccfId,omitempty"`
204
205         // Text description of the API
206         Description *string `json:"description,omitempty"`
207
208         // Represents the published API path within the same CAPIF provider domain.
209         PubApiPath         *PublishedApiPath `json:"pubApiPath,omitempty"`
210         ServiceAPICategory *string           `json:"serviceAPICategory,omitempty"`
211
212         // Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains.
213         ShareableInfo *ShareableInformation `json:"shareableInfo,omitempty"`
214 }
215
216 // Indicates whether the service API and/or the service API category can be shared to the list of CAPIF provider domains.
217 type ShareableInformation struct {
218         // List of CAPIF provider domains to which the service API information to be shared.
219         CapifProvDoms *[]string `json:"capifProvDoms,omitempty"`
220
221         // 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".
222         IsShareable bool `json:"isShareable"`
223 }
224
225 // Represents the API version information.
226 type Version struct {
227         // API major version in URI (e.g. v1)
228         ApiVersion string `json:"apiVersion"`
229
230         // Custom operations without resource association.
231         CustOperations *[]CustomOperation `json:"custOperations,omitempty"`
232
233         // string with format "date-time" as defined in OpenAPI.
234         Expiry *externalRef1.DateTime `json:"expiry,omitempty"`
235
236         // Resources supported by the API.
237         Resources *[]Resource `json:"resources,omitempty"`
238 }
239
240 // Identification of the API publishing function.
241 type ApfId string
242
243 // String identifying an individual published service API.
244 type ServiceApiId string
245
246 // PostApfIdServiceApisJSONBody defines parameters for PostApfIdServiceApis.
247 type PostApfIdServiceApisJSONBody ServiceAPIDescription
248
249 // PutApfIdServiceApisServiceApiIdJSONBody defines parameters for PutApfIdServiceApisServiceApiId.
250 type PutApfIdServiceApisServiceApiIdJSONBody ServiceAPIDescription
251
252 // PostApfIdServiceApisJSONRequestBody defines body for PostApfIdServiceApis for application/json ContentType.
253 type PostApfIdServiceApisJSONRequestBody PostApfIdServiceApisJSONBody
254
255 // PutApfIdServiceApisServiceApiIdJSONRequestBody defines body for PutApfIdServiceApisServiceApiId for application/json ContentType.
256 type PutApfIdServiceApisServiceApiIdJSONRequestBody PutApfIdServiceApisServiceApiIdJSONBody