197 lines
4.4 KiB
JSON
197 lines
4.4 KiB
JSON
{
|
|
"openapi": "3.0.1",
|
|
"info": {
|
|
"title": "Light Bulb API",
|
|
"version": "v1"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "https://127.0.0.1"
|
|
}
|
|
],
|
|
"paths": {
|
|
"/Lights/{id}": {
|
|
"get": {
|
|
"operationId": "GetLightById",
|
|
"tags": [
|
|
"Lights"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"style": "simple",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"operationId": "PutLightById",
|
|
"tags": [
|
|
"Lights"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"style": "simple",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeStateRequest"
|
|
}
|
|
},
|
|
"text/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeStateRequest"
|
|
}
|
|
},
|
|
"application/*+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeStateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"operationId": "DeleteLightById",
|
|
"tags": [
|
|
"Lights"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"style": "simple",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/Lights": {
|
|
"get": {
|
|
"operationId": "GetLights",
|
|
"tags": [
|
|
"Lights"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "roomId",
|
|
"in": "query",
|
|
"style": "form",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"operationId": "CreateLights",
|
|
"tags": [
|
|
"Lights"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "roomId",
|
|
"in": "query",
|
|
"style": "form",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "lightName",
|
|
"in": "query",
|
|
"style": "form",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"ChangeStateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isOn": {
|
|
"type": "boolean",
|
|
"description": "Specifies whether the light is turned on or off."
|
|
},
|
|
"hexColor": {
|
|
"type": "string",
|
|
"description": "The hex color code for the light.",
|
|
"nullable": true
|
|
},
|
|
"brightness": {
|
|
"enum": [
|
|
"Low",
|
|
"Medium",
|
|
"High"
|
|
],
|
|
"type": "string",
|
|
"description": "The brightness level of the light."
|
|
},
|
|
"fadeDurationInMilliseconds": {
|
|
"type": "integer",
|
|
"description": "Duration for the light to fade to the new state, in milliseconds.",
|
|
"format": "int32"
|
|
},
|
|
"scheduledTime": {
|
|
"type": "string",
|
|
"description": "The time at which the change should occur.",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "Represents a request to change the state of the light."
|
|
}
|
|
}
|
|
}
|
|
} |