{"openapi":"3.0.3","security":[{"clientCredentials":[]}],"info":{"title":"Developer Portal Backend APIs","version":"v1","description":"Backend APIs used by DTN's Developer Portal Web App","contact":{"name":"Aether Innovation SE","email":"aether.innovationse-manila@dtn.com"}},"servers":[{"url":"http://localhost:3000"}],"paths":{"/v1/apis":{"summary":"Manage APIs","get":{"tags":["APIs"],"summary":"Get all APIs on the system","description":"Returns the APIs on the system, arranged by name in ascending order. If groupByCat was true, it will return the results grouped by category, but still arranged by name in ascending order.","parameters":[{"$ref":"#/components/parameters/x-request-id"},{"name":"groupByCat","description":"When this param is truthy, the results will be grouped by api category.","schema":{"type":"boolean"},"in":"query","required":false,"example":[true]}],"responses":{"200":{"description":"Successful response - returns a list of apis","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"$ref":"#/components/schemas/ApiList"},{"$ref":"#/components/schemas/ApiListGroupedByCat"}]}}}}}},"400":{"$ref":"#/components/responses/http-status-400"}}}},"/v1/apis/{slug}":{"summary":"Manage an API","description":"APIs used to manage","get":{"tags":["APIs"],"summary":"Get an API","parameters":[{"$ref":"#/components/parameters/x-request-id"},{"name":"slug","description":"The api identifier","schema":{"type":"string"},"in":"path","required":true,"example":["dtn-weather-conditions-api"]}],"responses":{"200":{"description":"Successful response - returns a list of apis","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api"}}}},"404":{"$ref":"#/components/responses/http-status-404"}}}},"/v1/apis/{slug}/spec/{version}":{"summary":"An endpoint to serve a JSON file of API spec","get":{"tags":["APIs"],"summary":"Get API spec","parameters":[{"$ref":"#/components/parameters/x-request-id"},{"name":"slug","description":"API slug","schema":{"type":"string"},"in":"query","required":true,"example":["dtn-weather-conditions-api"]},{"name":"version","description":"API version","schema":{"type":"string"},"in":"query","required":true,"example":["1.0.0"]}],"responses":{"200":{"description":"Successful response - returns the content of JSON file API spec","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","example":{"openapi":"1.0.0","info":{"title":"OpenAPI example","version":"1.0.0"},"webhooks":{"newPet":{"post":{"requestBody":{"decription":"Information about a new pet in the system","content":{"application/json":{"schema":{"title":"Schema for an API specs version","type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the data was received successfully"}}}}}}}}}}},"400":{"$ref":"#/components/responses/http-status-400"}}}},"/v1/apis/{slug}/changelog/{version}":{"summary":"An endpoint to serve a markdown file of API changelog","get":{"tags":["APIs"],"summary":"Get API changelog","parameters":[{"$ref":"#/components/parameters/x-request-id"},{"name":"slug","description":"API slug","schema":{"type":"string"},"in":"query","required":true,"example":["dtn-weather-conditions-api"]},{"name":"version","description":"API version","schema":{"type":"string"},"in":"query","required":true,"example":["1.0.0"]}],"responses":{"200":{"description":"Successful response - returns the content of changelog markdown file","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"}},"content":{"text/plain":{"schema":{"type":"string"},"example":"#Changelog \n\n###V1 API v1.0.1 minor major\n\n##1.0.1 - 2015-08-01\n\n####What's Changed\n\n- Add support for array query parameters\n- Added `/v1/api/get-users` endpoint\n- Add ability to set multiple query parameters at once\n- Fix creating urls from invalid strings\n- Provide a component stack as a second argument to onRecoverableError\n- Pass information about server errors to the client.\n- Allow to provide a reason when aborting the HTML stream.\n- Eliminate extraneous text separators in the HTML where possible.\n- Disallow complex children inside