jdegre / 5gc_apis Goto Github PK
View Code? Open in Web Editor NEWRESTful APIs of main Network Functions in the 3GPP 5G Core Network
RESTful APIs of main Network Functions in the 3GPP 5G Core Network
How come there is no "servers" for the OAuth2 service in NRF?
I was expecting something like "{apiRoot}/nnrf-auth/v1"...
5GC_APIs/TS29510_Nnrf_AccessToken.yaml
Line 16 in 77d17f1
Hello,
missing specification for ProblemDetails (see "default" node) in DELETE /subscription-data/subs-to-notify
responses:
'204':
description: Expected response to a successful subscription removal
default: <------ NOT SPECIFIED
description: Unexpected error
content:
application/problem+json:
schema:
$ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
Best Regards,
Kresimir
Semantic errors are seen in Rel-16, Rel-17 and Rel-18. I show below the errors for Rel-18.
https://jdegre.github.io/editor/?url=https://raw.githubusercontent.com/jdegre/5GC_APIs/Rel-18/TS29505_Subscription_Data.yaml
It's possible that similar errors are there in other YAML but I did not check the other files. Strangely, OpenAPI code generator does not complain about these semantic errors.
I cloned this repo and installed openai generator, ran agains the NRF like this
root@Focal:/tmp/test# openapi-generator-cli generate -i TS29510_Nnrf_NFManagement.yaml -g python-flask -o /tmp/test/
when I run the server using pip3 -m openapi_server I get the below msg,
File "/usr/local/lib/python3.8/dist-packages/connexion/apis/abstract.py", line 119, in init
self.add_paths()
File "/usr/local/lib/python3.8/dist-packages/connexion/apis/abstract.py", line 229, in add_paths
self._handle_add_operation_error(path, method, err.exc_info)
File "/usr/local/lib/python3.8/dist-packages/connexion/apis/abstract.py", line 244, in _handle_add_operation_error
raise value.with_traceback(traceback)
File "/usr/local/lib/python3.8/dist-packages/connexion/resolver.py", line 68, in resolve_function_from_operation_id
return self.function_resolver(operation_id)
File "/usr/local/lib/python3.8/dist-packages/connexion/utils.py", line 128, in get_function_from_name
raise last_import_error
File "/usr/local/lib/python3.8/dist-packages/connexion/utils.py", line 116, in get_function_from_name
module = importlib.import_module(module_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in find_and_load_unlocked
ModuleNotFoundError: No module named 'openapi_server.controllers.nf_instances(store)controller'
Will be great if someone can help me with this since I'm new to openapi
As per the schema, event
of type string
representing object NwdafEvent
should be supplied. However the example in swagger doesn't contain event
attribute.
Following is the copy/paste from example in swagger.
{
"eventSubscriptions": [{
"anySlice": true,
"applicationIds": [
"string"
],
"dnns": [
"string"
],
"dnais": [
"string"
],
"loadLevelThreshold": 0,
"networkArea": {
"ecgis": [{
"plmnId": {
"mcc": "string",
"mnc": "string"
},
"eutraCellId": "string",
"nid": "string"
}],
"ncgis": [{
"plmnId": {
"mcc": "string",
"mnc": "string"
},
"nrCellId": "string",
"nid": "string"
}],
"gRanNodeIds": [
null,
null,
null,
null
],
"tais": [{
"plmnId": {
"mcc": "string",
"mnc": "string"
},
"tac": "string",
"nid": "string"
}]
},
"qosRequ": {
"5qi": 0,
"pdb": 0,
"per": "string"
},
"qosFlowRetainThresholds": [
0
],
"ranUeThroughputThresholds": [
0
],
"repetitionPeriod": 0,
"snssaia": [{
"sst": 0,
"sd": "string"
}],
"maxAnaEntry": 0,
"tgtUe": {
"anyUe": true,
"supi": "string",
"intGroupId": "string"
},
"congThresholds": [
0
]
}],
"evtReq": {
"startTs": "2020-02-12T20:42:49.980Z",
"endTs": "2020-02-12T20:42:49.980Z"
},
"notificationURI": "string",
"supportedFeatures": "string"
}
I'm a little bit confused about the approach to have a GET request with query parameters as complex types.
Usually, resource and sub-resource identifiers are passed as path params and query are used for filtering, sorting, etc. Most endpoints under this API are actually "searches", with complex types. The recommendation here is to use POST and the query is passed in the body and it can be as complex as it needs to be.
Most clients would have "problems" (there is no default support for complex types in query parameters) and they would have to either generate JSON before setting the parameter or hopefully the client library has support to handle this. For example, Jersey has no default support, but you can plug in an extension point to convert complex types to JSON.
Even if encoding the request is not a problem, you can hit the GET URI limit since the URI will be huge with all those JSON objects...not to mention the horror in the web container logs ;)
Not sure if this thread is suitable for this type of issues. Correct me if I wrong.
Problem:
SubscriptionData
{
"nfStatusNotificationUri": "robot:8081",
"subscriptionId": "123456",
"subscrCond": {
"nfType": "UDR"
},
"reqNotifEvents": [
"NF_REGISTERED",
"NF_DEREGISTERED",
"NF_PROFILE_CHANGED"
]
}
generates errors in python validator:
Failed validating 'oneOf' in schema['properties', 'SubscriptionData', 'properties', 'subscrCond']:
-> {'nfType': 'UDR'} is valid under each of {'$ref': '#/properties/ScpDomainCond'}, {'$ref': '#/properties/NfTypeCond'}
On instancedeque(['SubscriptionData', 'subscrCond']):
{'nfType': 'UDR'}
Solution:
more strict rules for oneof types solves the problem:
ScpDomainCond:
description: Subscription to a set of NF or SCP or SEPP instances belonging to certain SCP domains
type: object
required: # fix
- scpDomains
properties:
scpDomains:
type: array
items:
type: string
minItems: 1
For authentication between network functions the 3GPP standard suggests - apart from OAuth2 - that a form of "static authorization" would be a feasible approach, without stating what is meant by that.
An approach that I am looking into is to allow access to certain API functions only from the sources that are supposed to access that function by configuring kubernetes ingress policies. Ingress policies cannot match on the vague idea of "API functions", but they can match on URL paths, so the difficulty arises when one tries to map the consumer network functions (or reference points) to paths. The approach I am trying is to use the OpenAPI specs to identify those paths.
E.g. these are some reference points where AMF is a producer:
Now how do I map those reference points to the respective OpenAPI spec of the producer NF? Can such a mapping even exist? From there I could then probably identify ingress rules based on paths.
I understand there are overlaps in the paths defined in the different OpenAPI spec files, but it's the best approach I could come up with. Maybe a direct mapping between reference point and path is more useful, but that would require even more detailed 5G knowledge, which I clearly lack.
Hi @jdegre,
A quick question about the use of empty OAuth scopes in TS29122_AsSessionWithQoS.yaml
,
TS29122_ChargeableParty.yaml
and some others:
Does the absence of scopes mean that authorization MUST NOT be dependent on scope?
Or does it mean that the API implementation can define its own scopes within the OAuth security scheme, and specify its own scope requirements on the API operations that use that scheme?
I'm asking because I've opened a pull request in the OpenAPI Specification to explicitly allow empty scopes in Security Scheme Object and OAuth Flow Object, and to clarify the meaning in cases where scopes are specified as empty.
In working with the 5GC OpenAPI documents, our editor flags an error on the empty array specified as the scopes value in the Security Requirement Object:
security:
- {}
- oAuth2ClientCredentials: []
The array normally holds a list of scopes defined in the OAuth Security Scheme, but the oAuth2ClientCredentials scheme has an empty object as the scopes value:
securitySchemes:
oAuth2ClientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: '{tokenUrl}'
scopes: {}
By my count, there are 15 APIs that are defined this way. For reference, here are a few of them:
The OpenAPI 3.0.2 specification says that scopes
is required in an OAuth Flow Object within an oauth2-typed Security Scheme Object. It doesn't explicitly say that the object value must define at least one scope, and therefore must not be empty. But we interpreted the fact that it's required to mean that it's required to be non-empty.
In fact, KaiZen Editor tolerates the empty scopes object, but it flags an error on the corresponding empty scopes array in the Security Requirement Object.
It turns out that an empty scopes object is allowed in the Security Scheme Object, and a corresponding empty array is allowed in the Security Requirement Object. This is described in a closed issue #513 on the OAS spec project. I think the spec could be explicit about this, so I have submitted pull request #1888 to address this.
And we will fix this issue in KaiZen OpenAPI Editor so we can work with the 5GC documents.
So this might be a problem apisprout (danielgtaylor/apisprout#81), but it could be in the Specs - the error is quite long. Perhaps someone has some insight.
Reproducer:
git clone https://github.com/jdegre/5GC_APIs
# commit da92f21c0e6b2b112f79670eb61cf9f7617bba22 as of right now
cd 5GC_APIs
apisprout TS32291_Nchf_ConvergedCharging.yaml
gives the attached long error, ending with:
Error while unmarshalling property 'required' (*[]string): json: cannot unmarshal bool into Go value of type string
As title says there is somewhat of a "specification" for the service created in document 123.502 but nothing looks final and doesn't specify things enough, theres no mention of it on other documents related to NEF and/or related to Policy Authorizations from the PCF where it should be relevant.
Hi,
I'm working on a demo where i need an external system to API with free5gc's AMF and 'command' it to release a UE.
Your 5GC_APIs repository points to https://jdegre.github.io/loader.html?yaml=TS29518_Namf_Communication.yaml
my question is - what are the oAuth2ClientCredentials I'm supposed to use (client_id, client_secret) for free5gc's AMF ?
I'd appreciate your help on this.
Hi!
According to 3GPP TS 23.502 V18.0.0 (2022-12) there should be a Nnef_Trigger_Delivery request
but I can't find the YAML specification for it. Just TS29122_DeviceTriggering.yaml
and TS29522_NIDDConfigurationTrigger.yaml
which does not relate with the 3GPP documentation.
What I'm a missing?
Regards,
Armindo
3GPP TS 32.291 V16.9.0 (2021-09) Page 68
QUOTA_MANAGEMENT_SUSPENDED
open api spec QUOTA_MANAGEMENT
5GC_APIs/TS32291_Nchf_ConvergedCharging.yaml
Line 1363 in e14e017
rK0WYK9D966ebjsDqvsOdfHEdD0tTYpn4KHWUcULFmY
Currently, ConfirmationDataResponse
is defined as:
ConfirmationDataResponse:
type: object
properties:
authResult:
$ref: '#/components/schemas/AuthResult'
supi:
$ref: 'CommonData.yaml#/components/schemas/Supi'
required:
- authResult
However, in TS 33.501 [1], for 5G AKA procedure (step 12), it is mentioned that
If the authentication was successful, the KSEAF shall be sent to the SEAF in the Nausf_UEAuthentication_Authenticate Response
This response body contains a ConfirmationDataResponse
object, but there's no kSeaf
field.
I think kSeaf
should also be added as an optional property in the definition:
ConfirmationDataResponse:
type: object
properties:
authResult:
$ref: '#/components/schemas/AuthResult'
supi:
$ref: 'CommonData.yaml#/components/schemas/Supi'
kSeaf:
$ref: '#/components/schemas/Kseaf'
required:
- authResult
I am having trouble converting these YAML files into spring project. Every time I face different issues like some models isn't converted or even if it does when I run the project some attributes are missing from the API. I tried open API tools, swagger, etc. Nothing seems to work out. Can you tell me which version or which tool should I use to convert it to a spring project?
How are these yaml files collected? Are they by scraping the 3gpp website? Looking into getting the latest spec files and curious how you're doing it!
Hello
I am using Rel-17 Dec'21
version from Jan 3
I may be wrong, but it looks like TS29571CommonData
and TS29510_Nnrf_AccessToken
depend on each other, so there seem not be a way to generate them (at least for for GO).
In previous versions TS29571CommonData did not depend of any other spec and it could be built independently. But that doesnt work anymore. Am I missing anything
Just in case, this is the command I am using is
//go:generate oapi-codegen -generate types,skip-prune -o specs/TS29571CommonData/TS29571CommonData.gen.go --import-mapping TS29510_Nnrf_AccessToken.yaml:magma/feg/gateway/sbi/specs/TS29510_Nnrf_AccessToken defs/TS29571_CommonData.yaml
go version go1.18 linux/amd64
First, thanks for providing this up-to-date repository !
I am trying to match the defined operations from the OpenAPI definitions to the 3GPP functional services definitions. In some yaml file, the keyword operationId
seems well used, as in TS29518_Namf_Communication.yaml.
However, in some other yaml files, this looks completely messed up, as in TS29508_Nsmf_EventExposure.yaml, where 4 operations have the following ids: CreateIndividualSubcription
, DeleteIndividualSubcription
, GetIndividualSubcription
and ReplaceIndividualSubcription
; but the TS 23.502 and TS 29.508 define the 4 following service operations: Subscribe
, Unsubscribe
, Notify
and AppRelocationInfo
, where the 2 last correspond in the yaml file to callbacks without operationId
actually set...
Do you know if there is an intention to have this made more reliable during the next 3GPP meetings, or if this operationId
keyword is just cosmetic and will never match perfectly the 3GPP service definitions ?
In TS29503_Nudm_SDM.yaml, line 55, PlmnId is an object, not a string. Should all query parameters be strings? A PlmnIdStr type that concatenates MCC and MNC would be simple and would not require a standard serialization method to generate the query string. The use of an Object in a query string breaks tools like Swagger viewer.
Maybe line 55 should change from:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
to:
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdStr'
where PlmnIdStr is a new string type, the concatenation of MCC + MNC?
Then the query parameter is plmn-id=mccmnc
Otherwise, there has to be some standard way to serialize Objects into query string elements, e.g.,
{plmn-id: [{mcc: 'xxx'}, {mnc: 'yyy'}]
opening TS29503_Nudm_UECM.yaml in the editor results in the following error
Semantic error at components.schemas.EpsInterworkingInfo.properties.epsIwkPgws.additionalProperties.$ref
$ref paths must begin with#/
Jump to line 1111
There seems to be a missing '/' in the the reference in EpsInterworkingInfo
#components/schemas/EpsIwkPgw
should be
#/components/schemas/EpsIwkPgw
Hello,
please correct small spelling error in TS29505_Subscription_Data.yaml.
Subs To Nofify (Collection) --> Subs To Notify (Collection)
location of spelling error:
get:
summary: Retrieves the list of subscriptions
operationId: **QuerySubsToNotify**
tags:
- Subs To Nofify (Collection) <----------------- **to be fixed**
/subscription-data/subs-to-notify:
post:
summary: Subscription data subscriptions
operationId: SubscriptionDataSubscriptions
tags:
- Subs To Nofify (Collection) <----------------- to be fixed
hi,
is it possible to generate server file for flask?
Hi @jdegre,
I'm trying to generate a code from yaml by openapi-generator.
But the code doesn't work as below.
What tool should I use for generating?
FYI, a number of the OpenAPI Documents contain a top-level Security Requirements Object like this one:
security:
- {}
- oAuth2Clientcredentials:
- nnssf-nssaiavailability
The defined name of the referenced security scheme is oAuth2ClientCredentials
with an upper-case 'C' in 'Credentials.' KaiZen OpenAPI Editor flagged this as an error.
TS29531_Nnssf_NSSAIAvailability.yaml
is one of several documents that has this error.
Hi,
I've noticed some NEF API specs are missing (Nnef_AFsessionWithQoS). there might be other missing as they were added recently so you may want to check that.
Thanks for putting this project online.
The OpenAPI spec allows to define path parameter definitions to the path item object level (see https://github.com/OAI/OpenAPI-Specification/blob/3.1.0/versions/3.1.0.md#pathItemObject).
This practise allows to avoid the duplication of the parameter definition for all the related operations.
It is applied in few yaml files but not globally.
The type object ServerCapabilities/optionalCapability is declared with a and it's leading to attribute's name with space:
FILE: TS32291_Nchf_ConvergedCharging.yaml
ServerCapabilities:
type: object
properties:
mandatoryCapability:
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32'
minItems: 0
optionalCapability : -> space between property name and ":".
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32'
Generated code:
private List optionalCapabilityNBSP;
Error: illegal character: '\u00a0'
Hello,
I couldn't see Nnwdaf_EventsSubscription_Notify operation with eventNotifications
attribute in NWDAF section. Please clarify.
Hello,
based on document "3GPP TS 29.504 version 16.4.0 Release 16 (2020-07)" , chapter 6.1.7., Table 6.1.7-1: Oauth2 scopes defined in Nudr_DataRepository API: 3 scopes defined
Should yaml be defined like this:
components:
securitySchemes:
oAuth2ClientCredentials:
type: oauth2
description: See https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/
flows:
clientCredentials:
tokenUrl: https://${nrfApiRoot}/oauth2/token
scopes:
nudr-dr: Grant access to the Nudr DataRepository API
nudr-dr:subscriptiondata:authentication-subscription:read: Access to read the AuthenticationSubscription resource of the SubscriptionData data set.
nudr-dr:subscriptiondata:authentication-subscription:modify: Access to update the AuthenticationSubscription resource of the SubscriptionData data set.
/subscription-data/{ueId}/authentication-data/authentication-subscription:
get:
summary: Retrieves the authentication subscription data of a UE
operationId: QueryAuthSubsData
tags:
- Authentication Data (Document)
security:
- oAuth2ClientCredentials: []
3GPP TS 29.504 version 16.4.0 Release 16 defined only 3 scopes, but here we also have: nudr-dr:subscription-data (but it doesn't define access operation: modify, read,..on which subscription to apply those grants)
/subscription-data/{ueId}/context-data/location:
get:
summary: Retrieves the UE's Location Information
operationId: QueryUeLocation
tags:
- UE's Location Information (Document)
security:
- {}
- oAuth2ClientCredentials:
- nudr-dr
- oAuth2ClientCredentials:
- nudr-dr
- nudr-dr:subscription-data
Hello,
Event Exposure Group Subscriptions (Collection) - title tag exists
Event Exposure Group Subscriptions (Document) - title tag doesn't exists
PUT /subscription-data/group-data/{ueGroupId}/ee-subscriptions/{subsId}
DELETE /subscription-data/group-data/{ueGroupId}/ee-subscriptions/{subsId}
PATCH /subscription-data/group-data/{ueGroupId}/ee-subscriptions/{subsId}
GET /subscription-data/group-data/{ueGroupId}/ee-subscriptions/{subsId}
currently those 4 http methods are defined in Event Exposure Subscription (Document) which depends to ueId.
5GC_APIs/TS29571_CommonData.yaml
Lines 2470 to 2473 in e14e017
The units for bit rate seem to use a legacy notation: bps, Kbps, Mbps, Gbps, Tbps [1].
These should be bps, Kibps, Mibps, Gibps, Tibps (multiplier = 1024) or bps, kbps, Mbps, Gbps, Tbps (multiplier = 1000).
Hi every one,
I like to enable sms service for my 5g network.
I need to know what are things need to change in SMSF code to communicate my amf .
Hi,
There seems to be a couple of extra spaces in the file TS29505_Subscription_Data.yaml in lines 1282 and lines 1310.
i.e 'https://raw.githubusercontent.com/jdegre/5GC_APIs/master/TS29571_CommonData.yaml #/components/schemas/VarUeId
has an extra space between the 'yaml' and the '#'
. It causes problems when you are trying to dereference the yaml file using some automated tool.
If you have the time, please have a look at the aforementioned
Thanks
Hi, @jdegre.
I confirmed exists FLR in 3GPP TS 29.572 V15.3.0 (2019-03); Table 6.1.6.2.14-1: Definition of type CivicAddress.
But, I didn't confirm it in TS29572_Nlmf_Location.yaml.
How to run these API's ?
Hi,
I don't think this qualifies as an issue, but I was not sure how to contact you regarding the change in certain APIs. For example, the UDR Authentication Data API (in UDR subscription Data APIs ) response data has changed in the last week or so. Looking at the 3GPP releases, there has been no new official release regarding the same(TS29.505 and TS29.504). Is it based on any existing CR which will come along with the next release ? Am I missing anything about the releases?
P.S Sorry for raising an extraneous issue, but I had no other way of messaging you
On line 249 within Rel-15 branch TS32291_Nchf_ConvergedCharging.yaml schema there is a required field 'nfConsumerIdentification'. This required field does not have a corresponding property value, after reading the open api json schema docs, found at...https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.5.3. It defines the statement below
As you can see the required field 'nfConsumerIdentification' is not present within the properties list, which is incorrect. It is also of note that within Rel-16 this value has been updated to 'invocationTimeStamp, which is valid.
Hello,
please check if minItems=1 should be corrected to minItems=2 ? 29.505 / 16.2.0 / 16.3.0 says it needs to.
https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3406
https://github.com/jdegre/5GC_APIs/blob/master/TS29505_Subscription_Data.yaml#L4079
ContextDatasetNames:
type: array
items:
$ref: '#/components/schemas/ContextDataSetName'
minItems: 1
--> should be minItems=2 ?
uniqueItems: true
3GPP TS 29.505 V16.3.0 (2020-06)
Table 5.2.32.3.1-1: URI query parameters supported by the GET method on this resource
context-dataset-names | array(ContextDataSetName) | M | 2..N | If included, this IE shall contain the names of context data sets to be retrieved. If not included, all context data sets shall be returned. |
---|
note: This part of sentence in doc 29.505 has no sense: "If not included, all context data sets shall be returned." It is mandatory, so it needs to be always included.
Hii,
I was trying to generate curl command for GET /nf-instances of NRF NFDiscovery Service using SWAGGER but it just keep loading when I use target-nf-type = AMF and requester-nf-type = SMF.
Thanks
Any idea why Nnef_TrafficInfluence_Create
(mentioned in 23.502) is not present in NEF northbound API (described in 29.522) ?
Traffic influence API at the moment contains only subscriptions.
in Line 307 , there is an additional single quote for field edgeInfrastructureUsageChargingInformation'
Hello,
I'm not sure if it is an issue on API or SOAPUI but I would like to comment that when I tried to import these yamls with ReadyAPI 2.8.2 fail with this error:
while scanning for the next token found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation) in 'string', line 301, column 17: items: ^
After sometime troubleshooting the issue is with the items "array type" as following:
< # flowInfo:
< # type: array
< # items:
< # $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo'
< # minItems: 1
< # description: Describes the application flows.
Please anybody has the same issue? What is the best tool to use swagger 5GC?
Thanks
Best Regards,
Miguel
We cannot validate an NFProfile as produced by the NFManagement API with the NFDiscovery's version of it.
e.g.: "heartBeatTimer" property does not exist in NFDiscovery::NFProfile
Why do we keep 2 definitions of the same class?
DispersionType's schema is not sound - for enum values specified in the first oneOf item (such as DVDA), both schemas match, but for oneOf to be valid, exactly 1 schema needs to match.
DispersionType:
oneOf:
- type: string
enum:
- DVDA
- TDA
- DVDA_AND_TDA
- type: string
This should probably be anyOf instead of oneOf. Analogously for DispersionClass.
The problem is still present in the latest Nwdaf OpenAPI release (17.8).
Hello,
I am trying to generate server boilerplate code of the TS29598_Nudsf_DataRepository.yaml. Unfortunately I get a NullPointerException when doing so.
I want to generate as go-gin-server, but python-flask did produce the same error.
Generating the TS29598_Nudsf_Timer.yaml works, but the DataRepostory doesn't.
Does someone know why this Error happens and is able to fix it?
Command:
openapi-generator-cli generate -g go-server --additional-properties=prependFormOrBodyParameters=true -o out -i TS29598_Nudsf_DataRepository.yaml
Error:
Exception: null
at org.openapitools.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:1163)
at org.openapitools.codegen.DefaultGenerator.processPaths(DefaultGenerator.java:1054)
at org.openapitools.codegen.DefaultGenerator.generateApis(DefaultGenerator.java:549)
at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:891)
at org.openapitools.codegen.cmd.Generate.execute(Generate.java:441)
at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Caused by: java.lang.NullPointerException
at org.openapitools.codegen.DefaultCodegen.getContent(DefaultCodegen.java:6743)
at org.openapitools.codegen.DefaultCodegen.fromOperation(DefaultCodegen.java:4006)
at org.openapitools.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:1131)
... 6 more
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.