Merge pull request #38443 from nextcloud/backport/38438/stable27

[stable27] Add OpenAPI specs
This commit is contained in:
Andy Scherzinger 2023-05-24 19:32:19 +02:00 committed by GitHub
commit 0799ef8ec5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 17011 additions and 0 deletions

View file

@ -0,0 +1,402 @@
{
"openapi": "3.0.3",
"info": {
"title": "cloud_federation_api",
"version": "0.0.1",
"description": "Enable clouds to communicate with each other and exchange data",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"AddShare": {
"type": "object",
"required": [
"recipientDisplayName"
],
"properties": {
"recipientDisplayName": {
"type": "string"
}
}
},
"Capabilities": {
"type": "object",
"required": [
"ocm"
],
"properties": {
"ocm": {
"type": "object",
"required": [
"enabled",
"apiVersion",
"endPoint",
"resourceTypes"
],
"properties": {
"enabled": {
"type": "boolean"
},
"apiVersion": {
"type": "string"
},
"endPoint": {
"type": "string"
},
"resourceTypes": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"shareTypes",
"protocols"
],
"properties": {
"name": {
"type": "string"
},
"shareTypes": {
"type": "array",
"items": {
"type": "string"
}
},
"protocols": {
"type": "object",
"required": [
"webdav"
],
"properties": {
"webdav": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"Error": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
},
"ValidationError": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"type": "object",
"required": [
"validationErrors"
],
"properties": {
"validationErrors": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"message"
],
"properties": {
"name": {
"type": "string"
},
"message": {
"type": "string",
"nullable": true
}
}
}
}
}
}
]
}
}
},
"paths": {
"/index.php/ocm/shares": {
"post": {
"operationId": "request_handler-add-share",
"summary": "Add share",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "shareWith",
"in": "query",
"description": "The user who the share will be shared with",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "query",
"description": "The resource name (e.g. document.odt)",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "description",
"in": "query",
"description": "Share description",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "providerId",
"in": "query",
"description": "Resource UID on the provider side",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "owner",
"in": "query",
"description": "Provider specific UID of the user who owns the resource",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "ownerDisplayName",
"in": "query",
"description": "Display name of the user who shared the item",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "sharedBy",
"in": "query",
"description": "Provider specific UID of the user who shared the resource",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "sharedByDisplayName",
"in": "query",
"description": "Display name of the user who shared the resource",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "protocol",
"in": "query",
"description": "e,.g. ['name' => 'webdav', 'options' => ['username' => 'john', 'permissions' => 31]]",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "shareType",
"in": "query",
"description": "'group' or 'user' share",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "query",
"description": "'file', 'calendar',...",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "The notification was successfully received. The display name of the recipient might be returned in the body",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddShare"
}
}
}
},
"400": {
"description": "Bad request due to invalid parameters, e.g. when `shareWith` is not found or required properties are missing",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationError"
}
}
}
},
"501": {
"description": "Share type or the resource type is not supported",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/index.php/ocm/notifications": {
"post": {
"operationId": "request_handler-receive-notification",
"summary": "Send a notification about an existing share",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "notificationType",
"in": "query",
"description": "Notification type, e.g. SHARE_ACCEPTED",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "query",
"description": "calendar, file, contact,...",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "providerId",
"in": "query",
"description": "ID of the share",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "notification",
"in": "query",
"description": "The actual payload of the notification",
"schema": {
"type": "string",
"nullable": true
}
}
],
"responses": {
"201": {
"description": "The notification was successfully received",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"400": {
"description": "Bad request due to invalid parameters, e.g. when `type` is invalid or missing",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationError"
}
}
}
},
"403": {
"description": "Getting resource not allowed",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationError"
}
}
}
},
"501": {
"description": "The resource type is not supported",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
},
"tags": [
{
"name": "request_handler",
"description": "Open-Cloud-Mesh-API"
}
]
}

293
apps/dashboard/openapi.json Normal file
View file

@ -0,0 +1,293 @@
{
"openapi": "3.0.3",
"info": {
"title": "dashboard",
"version": "0.0.1",
"description": "Dashboard app",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"OCSMeta": {
"type": "object",
"required": [
"status",
"statuscode"
],
"properties": {
"status": {
"type": "string"
},
"statuscode": {
"type": "integer"
},
"message": {
"type": "string"
},
"totalitems": {
"type": "string"
},
"itemsperpage": {
"type": "string"
}
}
},
"Widget": {
"type": "object",
"required": [
"id",
"title",
"order",
"icon_class",
"icon_url",
"widget_url",
"item_icons_round"
],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"order": {
"type": "integer",
"format": "int64"
},
"icon_class": {
"type": "string"
},
"icon_url": {
"type": "string"
},
"widget_url": {
"type": "string",
"nullable": true
},
"item_icons_round": {
"type": "boolean"
},
"buttons": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"text",
"link"
],
"properties": {
"type": {
"type": "string"
},
"text": {
"type": "string"
},
"link": {
"type": "string"
}
}
}
}
}
},
"WidgetItem": {
"type": "object",
"required": [
"subtitle",
"title",
"link",
"iconUrl",
"sinceId"
],
"properties": {
"subtitle": {
"type": "string"
},
"title": {
"type": "string"
},
"link": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"sinceId": {
"type": "string"
}
}
}
}
},
"paths": {
"/ocs/v2.php/apps/dashboard/api/v1/widgets": {
"get": {
"operationId": "dashboard_api-get-widgets",
"summary": "Get the widgets",
"tags": [
"dashboard_api"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Widget"
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/dashboard/api/v1/widget-items": {
"get": {
"operationId": "dashboard_api-get-widget-items",
"summary": "Get the items for the widgets",
"tags": [
"dashboard_api"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "sinceIds",
"in": "query",
"description": "Array indexed by widget Ids, contains date/id from which we want the new items",
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"description": "Limit number of result items per widget",
"schema": {
"type": "integer",
"format": "int64",
"default": 7
}
},
{
"name": "widgets",
"in": "query",
"description": "Limit results to specific widgets",
"schema": {
"type": "string"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WidgetItem"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"tags": []
}

251
apps/dav/openapi.json Normal file
View file

@ -0,0 +1,251 @@
{
"openapi": "3.0.3",
"info": {
"title": "dav",
"version": "0.0.1",
"description": "WebDAV endpoint",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"Capabilities": {
"type": "object",
"required": [
"dav"
],
"properties": {
"dav": {
"type": "object",
"required": [
"chunking"
],
"properties": {
"chunking": {
"type": "string"
},
"bulkupload": {
"type": "string"
}
}
}
}
},
"OCSMeta": {
"type": "object",
"required": [
"status",
"statuscode"
],
"properties": {
"status": {
"type": "string"
},
"statuscode": {
"type": "integer"
},
"message": {
"type": "string"
},
"totalitems": {
"type": "string"
},
"itemsperpage": {
"type": "string"
}
}
}
}
},
"paths": {
"/ocs/v2.php/apps/dav/api/v1/direct": {
"post": {
"operationId": "direct-get-url",
"summary": "Get a direct link to a file",
"tags": [
"direct"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "fileId",
"in": "query",
"description": "ID of the file",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "expirationTime",
"in": "query",
"description": "Duration until the link expires",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "Direct link returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"404": {
"description": "File not found",
"content": {
"text/plain": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "string"
}
}
}
}
}
}
}
},
"400": {
"description": "Getting direct link is not possible",
"content": {
"text/plain": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "string"
}
}
}
}
}
}
}
},
"403": {
"description": "Missing permissions to get direct link",
"content": {
"text/plain": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
},
"tags": []
}

File diff suppressed because it is too large Load diff

216
apps/oauth2/openapi.json Normal file
View file

@ -0,0 +1,216 @@
{
"openapi": "3.0.3",
"info": {
"title": "oauth2",
"version": "0.0.1",
"description": "Allows OAuth2 compatible authentication from other web applications.",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": []
},
"paths": {
"/index.php/apps/oauth2/authorize": {
"get": {
"operationId": "login_redirector-authorize",
"summary": "Authorize the user",
"tags": [
"login_redirector"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "client_id",
"in": "query",
"description": "Client ID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "state",
"in": "query",
"description": "State of the flow",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "response_type",
"in": "query",
"description": "Response type for the flow",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Client not found",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"303": {
"description": "Redirect to login URL",
"headers": {
"Location": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/index.php/apps/oauth2/api/v1/token": {
"post": {
"operationId": "oauth_api-get-token",
"summary": "Get a token",
"tags": [
"oauth_api"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "grant_type",
"in": "query",
"description": "Token type that should be granted",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "code",
"in": "query",
"description": "Code of the flow",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "refresh_token",
"in": "query",
"description": "Refresh token",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "client_id",
"in": "query",
"description": "Client ID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "client_secret",
"in": "query",
"description": "Client secret",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Token returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"access_token",
"token_type",
"expires_in",
"refresh_token",
"user_id"
],
"properties": {
"access_token": {
"type": "string"
},
"token_type": {
"type": "string"
},
"expires_in": {
"type": "integer",
"format": "int64"
},
"refresh_token": {
"type": "string"
},
"user_id": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Getting token is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"tags": []
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,65 @@
{
"openapi": "3.0.3",
"info": {
"title": "settings",
"version": "0.0.1",
"description": "Nextcloud settings",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": []
},
"paths": {
"/index.php/settings/admin/log/download": {
"get": {
"operationId": "log_settings-download",
"summary": "download logfile",
"description": "This endpoint requires admin access",
"tags": [
"log_settings"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"responses": {
"200": {
"description": "",
"headers": {
"Content-Disposition": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
}
},
"tags": []
}

1206
apps/theming/openapi.json Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,912 @@
{
"openapi": "3.0.3",
"info": {
"title": "weather_status",
"version": "0.0.1",
"description": "Weather status in your dashboard",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"Capabilities": {
"type": "object",
"required": [
"weather_status"
],
"properties": {
"weather_status": {
"type": "object",
"required": [
"enabled"
],
"properties": {
"enabled": {
"type": "boolean"
}
}
}
}
},
"Forecast": {
"type": "object",
"required": [
"time",
"data"
],
"properties": {
"time": {
"type": "string"
},
"data": {
"type": "object",
"required": [
"instant",
"next_12_hours",
"next_1_hours",
"next_6_hours"
],
"properties": {
"instant": {
"type": "object",
"required": [
"details"
],
"properties": {
"details": {
"type": "object",
"required": [
"air_pressure_at_sea_level",
"air_temperature",
"cloud_area_fraction",
"cloud_area_fraction_high",
"cloud_area_fraction_low",
"cloud_area_fraction_medium",
"dew_point_temperature",
"fog_area_fraction",
"relative_humidity",
"ultraviolet_index_clear_sky",
"wind_from_direction",
"wind_speed",
"wind_speed_of_gust"
],
"properties": {
"air_pressure_at_sea_level": {
"type": "number",
"format": "float"
},
"air_temperature": {
"type": "number",
"format": "float"
},
"cloud_area_fraction": {
"type": "number",
"format": "float"
},
"cloud_area_fraction_high": {
"type": "number",
"format": "float"
},
"cloud_area_fraction_low": {
"type": "number",
"format": "float"
},
"cloud_area_fraction_medium": {
"type": "number",
"format": "float"
},
"dew_point_temperature": {
"type": "number",
"format": "float"
},
"fog_area_fraction": {
"type": "number",
"format": "float"
},
"relative_humidity": {
"type": "number",
"format": "float"
},
"ultraviolet_index_clear_sky": {
"type": "number",
"format": "float"
},
"wind_from_direction": {
"type": "number",
"format": "float"
},
"wind_speed": {
"type": "number",
"format": "float"
},
"wind_speed_of_gust": {
"type": "number",
"format": "float"
}
}
}
}
},
"next_12_hours": {
"type": "object",
"required": [
"summary",
"details"
],
"properties": {
"summary": {
"type": "object",
"required": [
"symbol_code"
],
"properties": {
"symbol_code": {
"type": "string"
}
}
},
"details": {
"type": "object",
"required": [
"probability_of_precipitation"
],
"properties": {
"probability_of_precipitation": {
"type": "number",
"format": "float"
}
}
}
}
},
"next_1_hours": {
"type": "object",
"required": [
"summary",
"details"
],
"properties": {
"summary": {
"type": "object",
"required": [
"symbol_code"
],
"properties": {
"symbol_code": {
"type": "string"
}
}
},
"details": {
"type": "object",
"required": [
"precipitation_amount",
"precipitation_amount_max",
"precipitation_amount_min",
"probability_of_precipitation",
"probability_of_thunder"
],
"properties": {
"precipitation_amount": {
"type": "number",
"format": "float"
},
"precipitation_amount_max": {
"type": "number",
"format": "float"
},
"precipitation_amount_min": {
"type": "number",
"format": "float"
},
"probability_of_precipitation": {
"type": "number",
"format": "float"
},
"probability_of_thunder": {
"type": "number",
"format": "float"
}
}
}
}
},
"next_6_hours": {
"type": "object",
"required": [
"summary",
"details"
],
"properties": {
"summary": {
"type": "object",
"required": [
"symbol_code"
],
"properties": {
"symbol_code": {
"type": "string"
}
}
},
"details": {
"type": "object",
"required": [
"air_temperature_max",
"air_temperature_min",
"precipitation_amount",
"precipitation_amount_max",
"precipitation_amount_min",
"probability_of_precipitation"
],
"properties": {
"air_temperature_max": {
"type": "number",
"format": "float"
},
"air_temperature_min": {
"type": "number",
"format": "float"
},
"precipitation_amount": {
"type": "number",
"format": "float"
},
"precipitation_amount_max": {
"type": "number",
"format": "float"
},
"precipitation_amount_min": {
"type": "number",
"format": "float"
},
"probability_of_precipitation": {
"type": "number",
"format": "float"
}
}
}
}
}
}
}
}
},
"OCSMeta": {
"type": "object",
"required": [
"status",
"statuscode"
],
"properties": {
"status": {
"type": "string"
},
"statuscode": {
"type": "integer"
},
"message": {
"type": "string"
},
"totalitems": {
"type": "string"
},
"itemsperpage": {
"type": "string"
}
}
}
}
},
"paths": {
"/ocs/v2.php/apps/weather_status/api/v1/mode": {
"put": {
"operationId": "weather_status-set-mode",
"summary": "Change the weather status mode. There are currently 2 modes: - ask the browser - use the user defined address",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "mode",
"in": "query",
"description": "New mode",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/weather_status/api/v1/use-personal": {
"put": {
"operationId": "weather_status-use-personal-address",
"summary": "Try to use the address set in user personal settings as weather location",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"success",
"lat",
"lon",
"address"
],
"properties": {
"success": {
"type": "boolean"
},
"lat": {
"type": "number",
"format": "float",
"nullable": true
},
"lon": {
"type": "number",
"format": "float",
"nullable": true
},
"address": {
"type": "string",
"nullable": true
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/weather_status/api/v1/location": {
"get": {
"operationId": "weather_status-get-location",
"summary": "Get stored user location",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"lat",
"lon",
"address",
"mode"
],
"properties": {
"lat": {
"type": "number",
"format": "float"
},
"lon": {
"type": "number",
"format": "float"
},
"address": {
"type": "string"
},
"mode": {
"type": "integer",
"format": "int64"
}
}
}
}
}
}
}
}
}
}
}
},
"put": {
"operationId": "weather_status-set-location",
"summary": "Set address and resolve it to get coordinates or directly set coordinates and get address with reverse geocoding",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "address",
"in": "query",
"description": "Any approximative or exact address",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "lat",
"in": "query",
"description": "Latitude in decimal degree format",
"schema": {
"type": "number",
"format": "float",
"nullable": true
}
},
{
"name": "lon",
"in": "query",
"description": "Longitude in decimal degree format",
"schema": {
"type": "number",
"format": "float",
"nullable": true
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"success",
"lat",
"lon",
"address"
],
"properties": {
"success": {
"type": "boolean"
},
"lat": {
"type": "number",
"format": "float",
"nullable": true
},
"lon": {
"type": "number",
"format": "float",
"nullable": true
},
"address": {
"type": "string",
"nullable": true
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/weather_status/api/v1/forecast": {
"get": {
"operationId": "weather_status-get-forecast",
"summary": "Get forecast for current location",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "Forecast returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Forecast"
}
}
}
}
}
}
}
}
},
"404": {
"description": "Forecast not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/weather_status/api/v1/favorites": {
"get": {
"operationId": "weather_status-get-favorites",
"summary": "Get favorites list",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
},
"put": {
"operationId": "weather_status-set-favorites",
"summary": "Set favorites list",
"tags": [
"weather_status"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "favorites",
"in": "query",
"description": "Favorite addresses",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"required": true,
"schema": {
"type": "string",
"default": "true"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"tags": []
}

4474
core/openapi.json Normal file

File diff suppressed because it is too large Load diff