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 - JSON: JavaScript Object Notation
74 DataFormat *DataFormat `json:"dataFormat,omitempty"`
76 // Domain to which API belongs to
77 DomainName *string `json:"domainName,omitempty"`
80 InterfaceDescriptions *[]InterfaceDescription `json:"interfaceDescriptions,omitempty"`
82 // Possible values are - HTTP_1_1: HTTP version 1.1 - HTTP_2: HTTP version 2
83 Protocol *Protocol `json:"protocol,omitempty"`
85 // Security methods supported by the AEF
86 SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
89 Versions []Version `json:"versions"`
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
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"`
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"`
103 // Text description of the custom operation
104 Description *string `json:"description,omitempty"`
106 // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
107 Operations *[]Operation `json:"operations,omitempty"`
110 // Possible values are - JSON: JavaScript Object Notation
111 type DataFormat string
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"`
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"`
121 // Unsigned integer with valid values between 0 and 65535.
122 Port *externalRef1.Port `json:"port,omitempty"`
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"`
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
131 // Possible values are - HTTP_1_1: HTTP version 1.1 - HTTP_2: HTTP version 2
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"`
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"`
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"`
148 // Text description of the API resource
149 Description *string `json:"description,omitempty"`
151 // Supported HTTP methods for the API resource. Only applicable when the protocol in AefProfile indicates HTTP.
152 Operations *[]Operation `json:"operations,omitempty"`
155 ResourceName string `json:"resourceName"`
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"`
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
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"`
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"`
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"`
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"`
178 // CAPIF core function identifier.
179 CcfId *string `json:"ccfId,omitempty"`
181 // Text description of the API
182 Description *string `json:"description,omitempty"`
184 // Represents the published API path within the same CAPIF provider domain.
185 PubApiPath *PublishedApiPath `json:"pubApiPath,omitempty"`
186 ServiceAPICategory *string `json:"serviceAPICategory,omitempty"`
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"`
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"`
195 // Represents the parameters to request the modification of an APF published API resource.
196 type ServiceAPIDescriptionPatch struct {
197 AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
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"`
202 // CAPIF core function identifier.
203 CcfId *string `json:"ccfId,omitempty"`
205 // Text description of the API
206 Description *string `json:"description,omitempty"`
208 // Represents the published API path within the same CAPIF provider domain.
209 PubApiPath *PublishedApiPath `json:"pubApiPath,omitempty"`
210 ServiceAPICategory *string `json:"serviceAPICategory,omitempty"`
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"`
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"`
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"`
225 // Represents the API version information.
226 type Version struct {
227 // API major version in URI (e.g. v1)
228 ApiVersion string `json:"apiVersion"`
230 // Custom operations without resource association.
231 CustOperations *[]CustomOperation `json:"custOperations,omitempty"`
233 // string with format "date-time" as defined in OpenAPI.
234 Expiry *externalRef1.DateTime `json:"expiry,omitempty"`
236 // Resources supported by the API.
237 Resources *[]Resource `json:"resources,omitempty"`
240 // Identification of the API publishing function.
243 // String identifying an individual published service API.
244 type ServiceApiId string
246 // PostApfIdServiceApisJSONBody defines parameters for PostApfIdServiceApis.
247 type PostApfIdServiceApisJSONBody ServiceAPIDescription
249 // PutApfIdServiceApisServiceApiIdJSONBody defines parameters for PutApfIdServiceApisServiceApiId.
250 type PutApfIdServiceApisServiceApiIdJSONBody ServiceAPIDescription
252 // PostApfIdServiceApisJSONRequestBody defines body for PostApfIdServiceApis for application/json ContentType.
253 type PostApfIdServiceApisJSONRequestBody PostApfIdServiceApisJSONBody
255 // PutApfIdServiceApisServiceApiIdJSONRequestBody defines body for PutApfIdServiceApisServiceApiId for application/json ContentType.
256 type PutApfIdServiceApisServiceApiIdJSONRequestBody PutApfIdServiceApisServiceApiIdJSONBody