1 // Package publishserviceapi provides primitives to interact with the openapi HTTP API.
3 // Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
4 package publishserviceapi
7 externalRef0 "oransc.org/nonrtric/capifcore/internal/common"
8 externalRef1 "oransc.org/nonrtric/capifcore/internal/common29122"
9 externalRef2 "oransc.org/nonrtric/capifcore/internal/common29571"
12 // Defines values for CommunicationType.
14 CommunicationTypeREQUESTRESPONSE CommunicationType = "REQUEST_RESPONSE"
16 CommunicationTypeSUBSCRIBENOTIFY CommunicationType = "SUBSCRIBE_NOTIFY"
19 // Defines values for DataFormat.
21 DataFormatJSON DataFormat = "JSON"
24 // Defines values for Operation.
26 OperationDELETE Operation = "DELETE"
28 OperationGET Operation = "GET"
30 OperationPATCH Operation = "PATCH"
32 OperationPOST Operation = "POST"
34 OperationPUT Operation = "PUT"
37 // Defines values for Protocol.
39 ProtocolHTTP11 Protocol = "HTTP_1_1"
41 ProtocolHTTP2 Protocol = "HTTP_2"
44 // Defines values for SecurityMethod.
46 SecurityMethodOAUTH SecurityMethod = "OAUTH"
48 SecurityMethodPKI SecurityMethod = "PKI"
50 SecurityMethodPSK SecurityMethod = "PSK"
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"`
58 // Identifies the data center where the AEF providing the service API is located.
59 DcId *string `json:"dcId,omitempty"`
61 // Geographic area specified by different shape.
62 GeoArea *externalRef0.GeographicArea `json:"geoArea,omitempty"`
65 // Represents the AEF profile data.
66 type AefProfile struct {
67 // Identifier of the API exposing function
68 AefId string `json:"aefId"`
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"`
73 // Possible values are:
74 // - JSON: JavaScript Object Notation
75 DataFormat *DataFormat `json:"dataFormat,omitempty"`
77 // Domain to which API belongs to
78 DomainName *string `json:"domainName,omitempty"`
81 InterfaceDescriptions *[]InterfaceDescription `json:"interfaceDescriptions,omitempty"`
83 // Possible values are:
84 // - HTTP_1_1: HTTP version 1.1
85 // - HTTP_2: HTTP version 2
86 Protocol *Protocol `json:"protocol,omitempty"`
88 // Security methods supported by the AEF
89 SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
92 Versions []Version `json:"versions"`
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
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"`
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"`
110 // Text description of the custom operation
111 Description *string `json:"description,omitempty"`
113 // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
114 Operations *[]Operation `json:"operations,omitempty"`
117 // Possible values are:
118 // - JSON: JavaScript Object Notation
119 type DataFormat string
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"`
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"`
129 // Unsigned integer with valid values between 0 and 65535.
130 Port *externalRef1.Port `json:"port,omitempty"`
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"`
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
144 // Possible values are:
145 // - HTTP_1_1: HTTP version 1.1
146 // - HTTP_2: HTTP version 2
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"`
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"`
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"`
165 // Text description of the API resource
166 Description *string `json:"description,omitempty"`
168 // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
169 Operations *[]Operation `json:"operations,omitempty"`
172 ResourceName string `json:"resourceName"`
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"`
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
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"`
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"`
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"`
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"`
198 // CAPIF core function identifier.
199 CcfId *string `json:"ccfId,omitempty"`
201 // Text description of the API
202 Description *string `json:"description,omitempty"`
204 // Represents the published API path within the same CAPIF provider domain.
205 PubApiPath *PublishedApiPath `json:"pubApiPath,omitempty"`
206 ServiceAPICategory *string `json:"serviceAPICategory,omitempty"`
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"`
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"`
215 // Represents the parameters to request the modification of an APF published API resource.
216 type ServiceAPIDescriptionPatch struct {
217 AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
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"`
222 // CAPIF core function identifier.
223 CcfId *string `json:"ccfId,omitempty"`
225 // Text description of the API
226 Description *string `json:"description,omitempty"`
228 // Represents the published API path within the same CAPIF provider domain.
229 PubApiPath *PublishedApiPath `json:"pubApiPath,omitempty"`
230 ServiceAPICategory *string `json:"serviceAPICategory,omitempty"`
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"`
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"`
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"`
245 // Represents the API version information.
246 type Version struct {
247 // API major version in URI (e.g. v1)
248 ApiVersion string `json:"apiVersion"`
250 // Custom operations without resource association.
251 CustOperations *[]CustomOperation `json:"custOperations,omitempty"`
253 // string with format "date-time" as defined in OpenAPI.
254 Expiry *externalRef1.DateTime `json:"expiry,omitempty"`
256 // Resources supported by the API.
257 Resources *[]Resource `json:"resources,omitempty"`
260 // PostApfIdServiceApisJSONBody defines parameters for PostApfIdServiceApis.
261 type PostApfIdServiceApisJSONBody ServiceAPIDescription
263 // PutApfIdServiceApisServiceApiIdJSONBody defines parameters for PutApfIdServiceApisServiceApiId.
264 type PutApfIdServiceApisServiceApiIdJSONBody ServiceAPIDescription
266 // PostApfIdServiceApisJSONRequestBody defines body for PostApfIdServiceApis for application/json ContentType.
267 type PostApfIdServiceApisJSONRequestBody PostApfIdServiceApisJSONBody
269 // PutApfIdServiceApisServiceApiIdJSONRequestBody defines body for PutApfIdServiceApisServiceApiId for application/json ContentType.
270 type PutApfIdServiceApisServiceApiIdJSONRequestBody PutApfIdServiceApisServiceApiIdJSONBody