Last active
August 2, 2018 22:36
-
-
Save AntoineDao/4e9a7a3167428823850cf797b38ff51b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"swagger": "2.0", | |
"info": { | |
"version": "0.0.0", | |
"title": "Honeybee Server API", | |
"description": "A sample API definition for a honeybee server" | |
}, | |
"schemes": [ | |
"http" | |
], | |
"host": "api.ladybug-tools.io", | |
"basePath": "/api", | |
"paths": { | |
"/analysis_grid": { | |
"get": { | |
"summary": "Get a list of analysis_grid objects", | |
"description": "Retrieves a list of analysis grids for a given filter.", | |
"tags": [ | |
"Analysis Grid" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/GridNameParameter" | |
}, | |
{ | |
"$ref": "#/parameters/MinPointsParameter" | |
}, | |
{ | |
"$ref": "#/parameters/MaxPointsParameter" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "A list of analysis_grids matching the query parameters", | |
"schema": { | |
"properties": { | |
"results": { | |
"type": "array", | |
"items": { | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"analysis_grid": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Couldn't find any definitions matching your search query... :(" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a new analysis_grid file", | |
"description": "Adds a new analysis_grid file to the list", | |
"tags": [ | |
"Analysis Grid" | |
], | |
"parameters": [ | |
{ | |
"name": "analysis_grid", | |
"in": "body", | |
"description": "A analysis_grid JSON filer with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "analysis_grid succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create analysis_grid... :(" | |
} | |
} | |
} | |
}, | |
"/analysis_grid/{uuid}": { | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the analysis_grid.", | |
"type": "string" | |
} | |
], | |
"get": { | |
"summary": "Get an analysis_grid object", | |
"description": "Returns a single analysis_grid object based on the provided uuid", | |
"tags": [ | |
"Analysis Grid" | |
], | |
"responses": { | |
"200": { | |
"description": "Succesfully returns the analysis_grid", | |
"schema": { | |
"required": [ | |
"uuid", | |
"analysis_grid" | |
], | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
}, | |
"analysis_grid": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "The uuid provided is invalid" | |
}, | |
"404": { | |
"description": "The analysis_grid does not exist" | |
} | |
} | |
}, | |
"put": { | |
"summary": "Modify an existing analysis_grid file", | |
"description": "Modifies any parameter (except uuid) of an analysis_grid file by completely replacing the definition file. A finer grain method can be set up later.", | |
"tags": [ | |
"Analysis Grid" | |
], | |
"parameters": [ | |
{ | |
"name": "analysis_grid", | |
"in": "body", | |
"description": "A analysis_grid JSON filer with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an existing analysis_grid file", | |
"description": "Delete an analysis_grid file in the database specifying the uuid of the file", | |
"tags": [ | |
"Analysis Grid" | |
], | |
"responses": { | |
"200": { | |
"description": "File succesfully deleted" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "File not found" | |
} | |
} | |
} | |
}, | |
"/epw": { | |
"get": { | |
"summary": "Get a list of EPW objects", | |
"description": "Retrieves a list of epw objects for a given filter.", | |
"tags": [ | |
"EPW" | |
], | |
"produces": [ | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/CountryParameter" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "A list of epws matching the query parameters", | |
"schema": { | |
"properties": { | |
"results": { | |
"type": "array", | |
"items": { | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"epw": { | |
"$ref": "#/definitions/EpwSchema" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Couldn't find any EPWs matching your search query... :(" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a new epw file", | |
"description": "Adds a new epw file to the list", | |
"tags": [ | |
"EPW" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "epw", | |
"description": "The location of the epw.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/EpwSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Epw succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create epw... :(" | |
} | |
} | |
} | |
}, | |
"/epw/{uuid}": { | |
"parameters": [ | |
{ | |
"name": "uuid", | |
"in": "path", | |
"required": true, | |
"description": "The unique identifier of the epw.", | |
"type": "string" | |
} | |
], | |
"get": { | |
"summary": "Get a specific epw file", | |
"description": "Returns a single epw file", | |
"tags": [ | |
"EPW" | |
], | |
"responses": { | |
"200": { | |
"description": "Succesfully returns the EPW", | |
"schema": { | |
"required": [ | |
"uuid", | |
"epw" | |
], | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"epw": { | |
"$ref": "#/definitions/EpwSchema" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "The uuid provided is invalid" | |
}, | |
"404": { | |
"description": "The epw does not exist" | |
} | |
} | |
}, | |
"put": { | |
"summary": "Modify an existing epw file", | |
"description": "Modifies any parameter (except uuid) of an epw file by completely replacing the EPW file. A finer grain method can be set up later.", | |
"tags": [ | |
"EPW" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "epw", | |
"description": "The location of the epw.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/EpwSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an existing epw file", | |
"description": "Delete an epw file in the database specifying the uuid of the file", | |
"tags": [ | |
"EPW" | |
], | |
"responses": { | |
"200": { | |
"description": "File succesfully deleted" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "File not found" | |
} | |
} | |
} | |
}, | |
"/material": { | |
"get": { | |
"summary": "Get a list of material objects", | |
"description": "Retrieves a list of material uuids for a given filter.", | |
"tags": [ | |
"Get and Delete Materials" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/MaterialTypeParameter" | |
}, | |
{ | |
"$ref": "#/parameters/RGBTransmittanceParameter" | |
}, | |
{ | |
"$ref": "#/parameters/RGBReflectanceParameter" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "A list of materials matching the query parameters", | |
"schema": { | |
"properties": { | |
"results": { | |
"type": "array", | |
"items": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
}, | |
"material": { | |
"$ref": "#/definitions/MaterialSchema" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Couldnt find any definitions matching your search query... :(" | |
} | |
} | |
} | |
}, | |
"/material/{uuid}": { | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the material.", | |
"type": "string" | |
} | |
], | |
"get": { | |
"summary": "Get a specific material object", | |
"description": "Returns a single material object", | |
"tags": [ | |
"Get and Delete Materials" | |
], | |
"responses": { | |
"200": { | |
"description": "Succesfully returns the material", | |
"schema": { | |
"required": [ | |
"uuid", | |
"material" | |
], | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
}, | |
"material": { | |
"$ref": "#/definitions/MaterialSchema" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "The uuid provided is invalid" | |
}, | |
"404": { | |
"description": "The material does not exist" | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an existing material file", | |
"description": "Delete an material file in the database specifying the uuid of the file", | |
"tags": [ | |
"Get and Delete Materials" | |
], | |
"responses": { | |
"200": { | |
"description": "File succesfully deleted" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "File not found" | |
} | |
} | |
} | |
}, | |
"/material/opaque": { | |
"post": { | |
"summary": "Create a new opaque material object", | |
"description": "Adds a new opaque material object to the database", | |
"tags": [ | |
"Opaque Material" | |
], | |
"parameters": [ | |
{ | |
"name": "opaque_material", | |
"in": "body", | |
"description": "an opaque material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/OpaqueMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "opaque material succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create opaque material... :(" | |
} | |
} | |
} | |
}, | |
"/material/opaque/{uuid}": { | |
"put": { | |
"summary": "Modify an existing opaque material file", | |
"description": "Modifies any parameter (except uuid) of a material file by completely replacing the definition file. A finer grain method can be set up later.", | |
"tags": [ | |
"Opaque Material" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the material.", | |
"type": "string" | |
}, | |
{ | |
"name": "opaque_material", | |
"in": "body", | |
"description": "an opaque material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/OpaqueMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/material/translucent": { | |
"post": { | |
"summary": "Create a new translucent material object", | |
"description": "Adds a new translucent material object to the database", | |
"tags": [ | |
"Translucent Material" | |
], | |
"parameters": [ | |
{ | |
"name": "translucent_material", | |
"in": "body", | |
"description": "a translucent material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/TranslucentMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "translucent material succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create material... :(" | |
} | |
} | |
} | |
}, | |
"/material/translucent/{uuid}": { | |
"put": { | |
"summary": "Modify an existing translucent material file", | |
"description": "Modifies any parameter (except uuid) of a material file by completely replacing the definition file. A finer grain method can be set up later.", | |
"tags": [ | |
"Translucent Material" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the material.", | |
"type": "string" | |
}, | |
{ | |
"name": "translucent_material", | |
"in": "body", | |
"description": "a translucent material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/TranslucentMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/material/light_source": { | |
"post": { | |
"summary": "Create a new light_source material object", | |
"description": "Adds a new light_source material object to the database", | |
"tags": [ | |
"Light Source Material" | |
], | |
"parameters": [ | |
{ | |
"name": "light_source_material", | |
"in": "body", | |
"description": "a light_source material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/LightSourceMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "light_source material succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create material... :(" | |
} | |
} | |
} | |
}, | |
"/material/light_source/{uuid}": { | |
"put": { | |
"summary": "Modify an existing light_source material file", | |
"description": "Modifies any parameter (except uuid) of a material file by completely replacing the definition file. A finer grain method can be set up later.", | |
"tags": [ | |
"Light Source Material" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the material.", | |
"type": "string" | |
}, | |
{ | |
"name": "light_source_material", | |
"in": "body", | |
"description": "a light_source material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/LightSourceMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/material/bsdf": { | |
"post": { | |
"summary": "Create a new bsdf material object", | |
"description": "Adds a new bsdf material object to the database", | |
"tags": [ | |
"BSDF Material" | |
], | |
"parameters": [ | |
{ | |
"name": "bsdf_material", | |
"in": "body", | |
"description": "a bsdf material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/BSDFMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "bsdf material succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create material... :(" | |
} | |
} | |
} | |
}, | |
"/material/bsdf/{uuid}": { | |
"put": { | |
"summary": "Modify an existing bsdf material file", | |
"description": "Modifies any parameter (except uuid) of a material file by completely replacing the definition file. A finer grain method can be set up later.", | |
"tags": [ | |
"BSDF Material" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the material.", | |
"type": "string" | |
}, | |
{ | |
"name": "bsdf_material", | |
"in": "body", | |
"description": "a bsdf material object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/BSDFMaterialSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/": { | |
"get": { | |
"summary": "Get a list of daylight recipe objects", | |
"description": "Retrieves a list of daylight recipe objects for a given filter.", | |
"tags": [ | |
"Get and Delete Recipes" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/RecipeTypeParameter" | |
}, | |
{ | |
"$ref": "#/parameters/RecipeLocationParameter" | |
}, | |
{ | |
"$ref": "#/parameters/RecipeStateParameter" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "A list of analysis_grids matching the query parameters", | |
"schema": { | |
"properties": { | |
"results": { | |
"type": "array", | |
"items": { | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"recipe": { | |
"$ref": "#/definitions/GridBasedRecipeSchema" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Couldn't find any definitions matching your search query... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/{uuid}": { | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the analysis_grid.", | |
"type": "string" | |
} | |
], | |
"get": { | |
"summary": "Get a specific analysis_grid object", | |
"description": "Returns a single analysis_grid object", | |
"tags": [ | |
"Get and Delete Recipes" | |
], | |
"responses": { | |
"200": { | |
"description": "Succesfully returns the recipe", | |
"schema": { | |
"$ref": "#/definitions/GridBasedRecipeSchema" | |
} | |
}, | |
"400": { | |
"description": "The uuid provided is invalid" | |
}, | |
"404": { | |
"description": "The analysis_grid does not exist" | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an existing recipe object", | |
"description": "Delete an recipe object in the database specifying the uuid of the object", | |
"tags": [ | |
"Get and Delete Recipes" | |
], | |
"responses": { | |
"200": { | |
"description": "object succesfully deleted" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "object not found" | |
} | |
} | |
} | |
}, | |
"/recipe/daylight_factor/gridbased": { | |
"post": { | |
"summary": "Create a new analysis_grid object", | |
"description": "Adds a new analysis_grid object to the list", | |
"tags": [ | |
"Daylight Factor Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A analysis_grid JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/DaylightFactorGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "daylight_factor recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create analysis_grid... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/daylight_factor/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing analysis_grid object", | |
"description": "Modifies any parameter (except uuid) of a daylight_factor recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Daylight Factor Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the daylight_factor recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A analysis_grid JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/DaylightFactorGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/direct_reflection/gridbased": { | |
"post": { | |
"summary": "Create a new direct_reflection object", | |
"description": "Adds a new direct_reflection object to the list", | |
"tags": [ | |
"Direct Reflection Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A direct_reflection JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/DirectReflectionGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "direct_reflection recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create analysis_grid... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/direct_reflection/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing direct_reflection object", | |
"description": "Modifies any parameter (except uuid) of a direct_reflection recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Direct Reflection Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the direct_reflection recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A analysis_grid JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/DirectReflectionGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/solar_access/gridbased": { | |
"post": { | |
"summary": "Create a new solar_access object", | |
"description": "Adds a new solar_access object to the list", | |
"tags": [ | |
"Solar Access Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A solar_access JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/SolarAccessGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "solar_access recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create analysis_grid... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/solar_access/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing solar_access object", | |
"description": "Modifies any parameter (except uuid) of a solar_access recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Solar Access Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the solar_access recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A solar_access JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/SolarAccessGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/point_in_time/gridbased": { | |
"post": { | |
"summary": "Create a new point_in_time object", | |
"description": "Adds a new point_in_time object to the list", | |
"tags": [ | |
"Point in Time Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A point_in_time JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/PointInTimeGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "point_in_time recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create point_in_time recipe... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/point_in_time/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing point_in_time object", | |
"description": "Modifies any parameter (except uuid) of a point_in_time recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Point in Time Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the point_in_time recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A analysis_grid JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/PointInTimeGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/annual/gridbased": { | |
"post": { | |
"summary": "Create a new annual object", | |
"description": "Adds a new annual object to the list", | |
"tags": [ | |
"Annual Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A annual JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/AnnualGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "annual recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create annual... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/annual/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing annual object", | |
"description": "Modifies any parameter (except uuid) of a annual recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Annual Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the annual recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A annual JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/AnnualGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/radiation/gridbased": { | |
"post": { | |
"summary": "Create a new radiation object", | |
"description": "Adds a new radiation object to the list", | |
"tags": [ | |
"Radiation Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A radiation JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/RadiationGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "radiation recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create analysis_grid... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/radiation/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing radiation object", | |
"description": "Modifies any parameter (except uuid) of a radiation recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Radiation Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the radiation recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A radiation JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/RadiationGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/three_phase/gridbased": { | |
"post": { | |
"summary": "Create a new three_phase object", | |
"description": "Adds a new three_phase object to the list", | |
"tags": [ | |
"Three Phase Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A three_phase JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/ThreePhaselGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "three_phase recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create analysis_grid... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/three_phase/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing three_phase object", | |
"description": "Modifies any parameter (except uuid) of a three_phase recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Three Phase Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the three_phase recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A three_phase JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/ThreePhaselGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/recipe/five_phase/gridbased": { | |
"post": { | |
"summary": "Create a new five_phase object", | |
"description": "Adds a new five_phase object to the list", | |
"tags": [ | |
"Five Phase Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A five_phase JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/FivePhaselGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "five_phase recipe succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create five_phase... :(" | |
} | |
} | |
} | |
}, | |
"/recipe/five_phase/gridbased/{uuid}": { | |
"put": { | |
"summary": "Modify an existing five_phase object", | |
"description": "Modifies any parameter (except uuid) of a five_phase recipe object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Five Phase Recipe" | |
], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the five_phase recipe.", | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "recipe", | |
"description": "A five_phase JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/FivePhaselGridBasedSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/hbsurface": { | |
"get": { | |
"summary": "Get a list of hbsurface objects", | |
"description": "Retrieves a list of HoneyBee Surface objects for a given filter.", | |
"tags": [ | |
"Honeybee Surface" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/SurfaceTypeParameter" | |
}, | |
{ | |
"$ref": "#/parameters/SurfaceMaterialParameter" | |
}, | |
{ | |
"$ref": "#/parameters/SurfaceStateParameter" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "A list of hbsurfaces matching the query parameters", | |
"schema": { | |
"properties": { | |
"results": { | |
"type": "array", | |
"items": { | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"hbsurface": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Couldnt find any definitions matching your search query... :(" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a new hbsurface object", | |
"description": "Adds a new hbsurface object to the list", | |
"tags": [ | |
"Honeybee Surface" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "hbsurface", | |
"description": "A hbsurface JSON object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "hbsurface succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create hbsurface... :(" | |
} | |
} | |
} | |
}, | |
"/hbsurface/{uuid}": { | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "uuid", | |
"required": true, | |
"description": "The unique identifier of the hbsurface.", | |
"type": "string" | |
} | |
], | |
"get": { | |
"summary": "Get a specific hbsurface object", | |
"description": "Returns a single hbsurface object", | |
"tags": [ | |
"Honeybee Surface" | |
], | |
"responses": { | |
"200": { | |
"description": "Succesfully returns the hbsurface", | |
"schema": { | |
"required": [ | |
"uuid", | |
"hbsurface" | |
], | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"hbsurface": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "The uuid provided is invalid" | |
}, | |
"404": { | |
"description": "The hbsurface does not exist" | |
} | |
} | |
}, | |
"put": { | |
"summary": "Modify an existing hbsurface object", | |
"description": "Modifies any parameter (except uuid) of an hbsurface object by completely replacing the definition object. A finer grain method can be set up later.", | |
"tags": [ | |
"Honeybee Surface" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "hbsurface", | |
"description": "A hbsurface JSON objectr with a uuid key.", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an existing hbsurface object", | |
"description": "Delete an hbsurface object in the database specifying the uuid of the object", | |
"tags": [ | |
"Honeybee Surface" | |
], | |
"responses": { | |
"200": { | |
"description": "object succesfully deleted" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "object not found" | |
} | |
} | |
} | |
}, | |
"/wea": { | |
"get": { | |
"summary": "Get a list of WEA objects", | |
"description": "Retrieves a list of wea objects for a given filter.", | |
"tags": [ | |
"WEA" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/CountryParameter" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "A list of weas matching the query parameters", | |
"schema": { | |
"properties": { | |
"results": { | |
"type": "array", | |
"items": { | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"hbsurface": { | |
"$ref": "#/definitions/WeaSchema" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Couldn't find any weas matching your search query... :(" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a new wea object", | |
"description": "Adds a new wea object to the list", | |
"tags": [ | |
"WEA" | |
], | |
"parameters": [ | |
{ | |
"name": "wea", | |
"in": "body", | |
"description": "a wea object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/WeaSchema" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "wea succesfully created.", | |
"schema": { | |
"properties": { | |
"uuid": { | |
"type": "string", | |
"example": "1a390fe5-9b53-4c52-9ecb-aa2f9633babd" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "Could not create wea... :(" | |
} | |
} | |
} | |
}, | |
"/wea/{uuid}": { | |
"parameters": [ | |
{ | |
"name": "uuid", | |
"required": true, | |
"in": "path", | |
"description": "The unique identifier of the wea.", | |
"type": "string" | |
} | |
], | |
"get": { | |
"summary": "Get a specific wea object", | |
"description": "Returns a single wea object", | |
"tags": [ | |
"WEA" | |
], | |
"responses": { | |
"200": { | |
"description": "Succesfully returns the wea", | |
"schema": { | |
"required": [ | |
"uuid", | |
"wea" | |
], | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"wea": { | |
"$ref": "#/definitions/WeaSchema" | |
} | |
} | |
} | |
}, | |
"400": { | |
"description": "The uuid provided is invalid" | |
}, | |
"404": { | |
"description": "The wea does not exist" | |
} | |
} | |
}, | |
"put": { | |
"summary": "Modify an existing wea object", | |
"description": "Modifies any parameter (except uuid) of an wea object by completely replacing the wea object. A finer grain method can be set up later.", | |
"tags": [ | |
"WEA" | |
], | |
"parameters": [ | |
{ | |
"name": "wea", | |
"in": "body", | |
"description": "a wea object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/WeaSchema" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Everything went smooth and well" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an existing wea object", | |
"description": "Delete an wea object in the database specifying the uuid of the object", | |
"tags": [ | |
"WEA" | |
], | |
"responses": { | |
"200": { | |
"description": "object succesfully deleted" | |
}, | |
"400": { | |
"description": "Bad request, something went wrong... :(", | |
"schema": { | |
"properties": { | |
"error": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "object not found" | |
} | |
} | |
} | |
} | |
}, | |
"parameters": { | |
"GridNameParameter": { | |
"name": "grid_name", | |
"in": "query", | |
"description": "The name of the grid", | |
"type": "string" | |
}, | |
"MinPointsParameter": { | |
"name": "min_points", | |
"in": "query", | |
"description": "The minimum amount of points the analysis grid has", | |
"type": "integer" | |
}, | |
"MaxPointsParameter": { | |
"name": "max_points", | |
"in": "query", | |
"description": "The maximum amount of points the analysis grid has", | |
"type": "integer" | |
}, | |
"CountryParameter": { | |
"name": "country", | |
"in": "query", | |
"description": "The countyr the EPW is from", | |
"type": "string" | |
}, | |
"MaterialTypeParameter": { | |
"in": "query", | |
"name": "material_type", | |
"description": "The type of the material to be queried", | |
"type": "string", | |
"enum": [ | |
"opaque", | |
"translucent", | |
"light_source", | |
"bsdf" | |
] | |
}, | |
"RGBTransmittanceParameter": { | |
"in": "query", | |
"name": "rgb_transmittance", | |
"description": "The RGB average transmittance value (will only return translucent material)", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"RGBReflectanceParameter": { | |
"in": "query", | |
"name": "rgb_reflectance", | |
"description": "The RGB average reflectance value (will only return opaque material)", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"RecipeTypeParameter": { | |
"name": "type", | |
"in": "query", | |
"description": "The type of recipe to be retrieved", | |
"type": "string", | |
"enum": [ | |
"daylight_factor", | |
"direct_reflection", | |
"solar_access", | |
"point_in_time", | |
"annual", | |
"radiation", | |
"three_phase", | |
"five_phase" | |
] | |
}, | |
"RecipeLocationParameter": { | |
"name": "location", | |
"in": "query", | |
"description": "The location where the weather sky is generated from (can be country or city, will only work for climate based recipes)", | |
"type": "string" | |
}, | |
"RecipeStateParameter": { | |
"name": "state", | |
"in": "query", | |
"description": "The state of the recipe on the server (whether it has run, is running, has failed or is on hold)", | |
"type": "string", | |
"enum": [ | |
"success", | |
"fail", | |
"running", | |
"waiting" | |
] | |
}, | |
"SurfaceTypeParameter": { | |
"in": "query", | |
"name": "surface_type", | |
"description": "The type of the surface to be queried", | |
"type": "string", | |
"enum": [ | |
"wall", | |
"underground_wall", | |
"roof", | |
"underground_ceiling", | |
"floor", | |
"slab_on_grade", | |
"exposed_floor", | |
"ceiling", | |
"window", | |
"context" | |
] | |
}, | |
"SurfaceMaterialParameter": { | |
"in": "query", | |
"name": "surface_material", | |
"description": "retrieve surfaces based on the name of their main material definiton (not materials in a given surface state)", | |
"type": "string" | |
}, | |
"SurfaceStateParameter": { | |
"in": "query", | |
"name": "surface_state", | |
"description": "retrieve a surface using the name of a given state it contains", | |
"type": "string" | |
} | |
}, | |
"definitions": { | |
"PointSchema": { | |
"properties": { | |
"x": { | |
"type": "number" | |
}, | |
"y": { | |
"type": "number" | |
}, | |
"z": { | |
"type": "number" | |
} | |
} | |
}, | |
"VectorSchema": { | |
"properties": { | |
"x": { | |
"type": "number" | |
}, | |
"y": { | |
"type": "number" | |
}, | |
"z": { | |
"type": "number" | |
} | |
} | |
}, | |
"HoySchema": { | |
"properties": { | |
"hoy_id": { | |
"type": "integer", | |
"description": "The hour of the year for a given set of results values" | |
}, | |
"hoy": { | |
"properties": { | |
"direct_value": { | |
"type": "number" | |
}, | |
"indirect_value": { | |
"type": "number" | |
} | |
} | |
} | |
} | |
}, | |
"StateSchema": { | |
"properties": { | |
"state_id": { | |
"type": "string", | |
"description": "The id of a given state for the source of light" | |
}, | |
"state": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HoySchema" | |
} | |
} | |
} | |
}, | |
"SourceSchema": { | |
"properties": { | |
"source_id": { | |
"type": "string", | |
"description": "The id of a source of light" | |
}, | |
"source": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/StateSchema" | |
} | |
} | |
} | |
}, | |
"AnalysisPointSchema": { | |
"properties": { | |
"location": { | |
"$ref": "#/definitions/PointSchema" | |
}, | |
"direction": { | |
"$ref": "#/definitions/VectorSchema" | |
}, | |
"values": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/SourceSchema" | |
} | |
} | |
} | |
}, | |
"AnalysisGridSchema": { | |
"properties": { | |
"name": { | |
"type": "string", | |
"description": "The name of the grid" | |
}, | |
"analysis_points": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisPointSchema" | |
} | |
}, | |
"window_groups": { | |
"type": "array", | |
"items": { | |
"description": "Name of a window group which contributes to the grid.", | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"EpwSchema": { | |
"required": [ | |
"location", | |
"header", | |
"data" | |
], | |
"properties": { | |
"header": { | |
"type": "array", | |
"minItems": 8, | |
"maxItems": 8, | |
"items": { | |
"type": "string" | |
} | |
}, | |
"location": { | |
"$ref": "#/definitions/EpwLocationSchema" | |
}, | |
"data": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/DataCollectionSchema" | |
} | |
} | |
} | |
}, | |
"EpwLocationSchema": { | |
"properties": { | |
"city": { | |
"type": "string" | |
}, | |
"latitude": { | |
"minimum": -90, | |
"maximum": 90, | |
"type": "number" | |
}, | |
"longitude": { | |
"minimum": -180, | |
"maximum": 180, | |
"type": "number" | |
}, | |
"time_zone": { | |
"type": "string" | |
}, | |
"elevation": { | |
"type": "number" | |
} | |
} | |
}, | |
"DataCollectionSchema": { | |
"required": [ | |
"data" | |
], | |
"properties": { | |
"header": { | |
"type": "object" | |
}, | |
"data": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/DataTypeSchema" | |
} | |
} | |
} | |
}, | |
"DataTypeSchema": { | |
"required": [ | |
"value", | |
"datetime", | |
"standard", | |
"nickname" | |
], | |
"properties": { | |
"value": { | |
"allOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "number" | |
} | |
] | |
}, | |
"datetime": { | |
"default": null | |
}, | |
"standard": { | |
"type": "string", | |
"enum": [ | |
"SI", | |
"IP" | |
] | |
}, | |
"nickname": { | |
"type": "string", | |
"default": null | |
} | |
} | |
}, | |
"MaterialSchema": { | |
"properties": { | |
"type": { | |
"description": "The type of material", | |
"type": "string" | |
}, | |
"material": {} | |
}, | |
"example": { | |
"type": "opaque", | |
"material": { | |
"name": "HoneyComb", | |
"type": "plastic", | |
"r_reflectance": 0.4, | |
"g_reflectance": 0.5, | |
"b_reflectance": 0.2, | |
"refraction": 0.4, | |
"specularity": 0.01, | |
"roughness": 0.03, | |
"modifier": "void" | |
} | |
} | |
}, | |
"TranslucentMaterialSchema": { | |
"properties": { | |
"name": { | |
"description": "Name of the material", | |
"type": "string" | |
}, | |
"r_transmittance": { | |
"description": "Transmittance for red", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"g_transmittance": { | |
"description": "Transmittance for green", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"b_transmittance": { | |
"description": "Transmittance for blue", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"refraction": { | |
"description": "Index of refraction", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"modifier": { | |
"type": "string", | |
"default": "void" | |
} | |
} | |
}, | |
"OpaqueMaterialSchema": { | |
"properties": { | |
"name": { | |
"description": "Name of the material", | |
"type": "string" | |
}, | |
"type": { | |
"description": "Material type", | |
"type": "string", | |
"enum": [ | |
"metal", | |
"plastic" | |
] | |
}, | |
"r_reflectance": { | |
"description": "Reflectance for red", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"g_reflectance": { | |
"description": "Reflectance for green", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"b_reflectance": { | |
"description": "Reflectance for blue", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"refraction": { | |
"description": "Index of refraction", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"specularity": { | |
"description": "Material specularity", | |
"type": "number" | |
}, | |
"roughness": { | |
"description": "Material roughness", | |
"type": "number" | |
}, | |
"modifier": { | |
"type": "string", | |
"default": "void" | |
} | |
} | |
}, | |
"LightSourceMaterialSchema": { | |
"properties": { | |
"name": { | |
"description": "Name of the material", | |
"type": "string" | |
}, | |
"red": { | |
"description": "A positive value for the Red channel of the glow", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"green": { | |
"description": "A positive value for the Green channel of the glow", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"blue": { | |
"description": "A positive value for the Blue channel of the glow", | |
"type": "number", | |
"minimum": 0, | |
"maximum": 1 | |
}, | |
"radius": { | |
"description": "Maximum radius for shadow testing", | |
"type": "number" | |
}, | |
"modifier": { | |
"type": "string", | |
"default": "void" | |
} | |
} | |
}, | |
"BSDFMaterialSchema": { | |
"properties": { | |
"name": { | |
"description": "Name of the material", | |
"type": "string" | |
}, | |
"xml_data": { | |
"description": "A string of the original XML", | |
"type": "string" | |
}, | |
"up_orientation": { | |
"type": "number" | |
}, | |
"thickness": { | |
"type": "number" | |
}, | |
"modifier": { | |
"type": "string", | |
"default": "void" | |
} | |
} | |
}, | |
"HoyListSchema": { | |
"type": "array", | |
"description": "A list of hours of the year", | |
"items": { | |
"type": "integer", | |
"description": "min key value 0 and max key value 8760" | |
} | |
}, | |
"AnalysisType": { | |
"type": "integer", | |
"enum": [ | |
0, | |
1, | |
2 | |
], | |
"description": "0 - illuminance(lux), 1 - radiation (kwh), 2 - luminance (Candela)" | |
}, | |
"RadianceParameters": { | |
"type": "string", | |
"description": "A standard radiance parameter string", | |
"example": "-ab 5 -aa 0.05 -ar 128" | |
}, | |
"SkySchema": { | |
"properties": { | |
"location": { | |
"$ref": "#/definitions/EpwLocationSchema" | |
}, | |
"hour": { | |
"type": "integer", | |
"description": "hour of the day - minvalue 0 and max value 23" | |
}, | |
"day": { | |
"type": "integer", | |
"description": "day of the month - minvalue 1 and max value 31" | |
}, | |
"month": { | |
"type": "integer", | |
"description": "month of the year - minvalue 1 and max value 12" | |
}, | |
"north": { | |
"type": "number", | |
"description": "angle in degrees between 0-360 to indicate North" | |
}, | |
"sky_type": { | |
"type": "integer", | |
"enum": [ | |
0, | |
1, | |
2, | |
3, | |
4, | |
5 | |
], | |
"description": "0 - Sunny with sun, 1 - sunny without sun, 2 - intermediate with sun, 3 - intermediate without sun, 4 - cloudy sky, 5 - uniform sky" | |
} | |
} | |
}, | |
"SkyMtxSchema": { | |
"properties": { | |
"wea": { | |
"$ref": "#/definitions/WeaSchema" | |
}, | |
"sky_density": { | |
"type": "integer", | |
"enum": [ | |
1, | |
2 | |
], | |
"description": "1 - Tregenza Sky, 2 - Reinhart Sky, etc. (Default - 1)" | |
}, | |
"north": { | |
"type": "number", | |
"minimum": 0, | |
"maximum": 360, | |
"description": "angle in degrees between 0-360 to indicate North" | |
}, | |
"hoys": { | |
"$ref": "#/definitions/HoyListSchema" | |
}, | |
"mode": { | |
"type": "integer", | |
"enum": [ | |
0, | |
1, | |
2 | |
], | |
"description": "sky mode" | |
}, | |
"suffix": { | |
"type": "string", | |
"description": "Suffix for the sky matrix" | |
} | |
} | |
}, | |
"GridBasedRecipeSchema": { | |
"properties": { | |
"uuid": { | |
"description": "The unique identifier of the recipe", | |
"type": "string" | |
}, | |
"recipe": {} | |
}, | |
"example": { | |
"uuid": "709116b8-d71e-4d50-bb54-216e83ad9f3f", | |
"recipe": { | |
"id": "annual", | |
"type": "gridbased", | |
"sky_mtx": { | |
"wea": "wea Json object", | |
"sky_density": 1, | |
"north": 0, | |
"mode": 2, | |
"suffix": null | |
}, | |
"analysis_grids": [ | |
"list of analysis grids" | |
], | |
"surfaces": [ | |
"list of surfaces" | |
], | |
"analysis_type": 2, | |
"rad_parameters": "-ab 5 -aa 0.05 -ar 128" | |
} | |
} | |
}, | |
"DaylightFactorGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"daylight_factor" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"rad_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
} | |
} | |
}, | |
"DirectReflectionGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"direct_reflection" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"location": { | |
"$ref": "#/definitions/EpwLocationSchema" | |
}, | |
"hoys": { | |
"$ref": "#/definitions/HoyListSchema" | |
}, | |
"sun_vectors": { | |
"type": "array", | |
"description": "A list of vectors if location is not provided", | |
"items": { | |
"$ref": "#/definitions/VectorSchema" | |
} | |
} | |
} | |
}, | |
"SolarAccessGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"solar_access" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"location": { | |
"$ref": "#/definitions/EpwLocationSchema" | |
}, | |
"hoys": { | |
"$ref": "#/definitions/HoyListSchema" | |
}, | |
"sun_vectors": { | |
"type": "array", | |
"description": "A list of vectors if location is not provided", | |
"items": { | |
"$ref": "#/definitions/VectorSchema" | |
} | |
} | |
} | |
}, | |
"PointInTimeGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"point_in_time" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"sky": { | |
"$ref": "#/definitions/SkySchema" | |
}, | |
"analysis_type": { | |
"$ref": "#/definitions/AnalysisType" | |
}, | |
"rad_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
} | |
} | |
}, | |
"AnnualGridBasedSchema": { | |
"example": { | |
"id": "annual", | |
"type": "gridbased", | |
"sky_mtx": { | |
"wea": "wea Json object", | |
"sky_density": 1, | |
"north": 0, | |
"mode": 2, | |
"suffix": null | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"analysis_grid": "an analysis grid Json object" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"surface": "an surface Json object" | |
} | |
}, | |
"analysis_type": 2, | |
"rad_parameters": "-ab 5 -aa 0.05 -ar 128" | |
}, | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"annual" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"sky_mtx": { | |
"$ref": "#/definitions/SkyMtxSchema" | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"analysis_type": { | |
"$ref": "#/definitions/AnalysisType" | |
}, | |
"rad_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
} | |
} | |
}, | |
"RadiationGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"radiation" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"sky_mtx": { | |
"$ref": "#/definitions/SkyMtxSchema" | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"rad_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
} | |
} | |
}, | |
"ThreePhaselGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"three_phase" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"sky_mtx": { | |
"$ref": "#/definitions/SkyMtxSchema" | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"analysis_type": { | |
"$ref": "#/definitions/AnalysisType" | |
}, | |
"view_mtx_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
}, | |
"daylight_mtx_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
} | |
} | |
}, | |
"FivePhaselGridBasedSchema": { | |
"properties": { | |
"id": { | |
"type": "string", | |
"enum": [ | |
"five_phase" | |
] | |
}, | |
"type": { | |
"type": "string", | |
"enum": [ | |
"gridbased" | |
] | |
}, | |
"sky_mtx": { | |
"$ref": "#/definitions/SkyMtxSchema" | |
}, | |
"analysis_grids": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisGridSchema" | |
} | |
}, | |
"surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/HBSurfaceSchema" | |
} | |
}, | |
"analysis_type": { | |
"$ref": "#/definitions/AnalysisType" | |
}, | |
"view_mtx_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
}, | |
"daylight_mtx_parameters": { | |
"$ref": "#/definitions/RadianceParameters" | |
} | |
} | |
}, | |
"VertexSchema": { | |
"type": "array", | |
"minimum": 3, | |
"items": { | |
"properties": { | |
"x": { | |
"type": "number" | |
}, | |
"y": { | |
"type": "number" | |
}, | |
"z": { | |
"type": "number" | |
} | |
} | |
} | |
}, | |
"SurfacePropertySchema": { | |
"properties": { | |
"surface_type": { | |
"type": "number", | |
"minimum": 0, | |
"maximum": 6, | |
"description": "0.0=Wall, 0.5=UndergroundWall, 1.0=Roof, 1.5=UndergroundCeiling, 2.0=Floor, 2.5=SlabOnGrade, 2.75=ExposedFloor, 3.0=Ceiling, 5.0=Window, 6.0=Context" | |
}, | |
"rad_properties": { | |
"$ref": "#/definitions/MaterialSchema" | |
} | |
} | |
}, | |
"SurfaceStateSchema": { | |
"properties": { | |
"name": { | |
"type": "string", | |
"description": "name of the state, usually default" | |
}, | |
"surface_properties": { | |
"$ref": "#/definitions/SurfacePropertySchema" | |
} | |
} | |
}, | |
"AnalysisSurfaceSchema": { | |
"properties": { | |
"name": { | |
"type": "string", | |
"description": "The name of the surface" | |
}, | |
"surface_type": { | |
"type": "number", | |
"minimum": 0, | |
"maximum": 6, | |
"description": "0.0=Wall, 0.5=UndergroundWall, 1.0=Roof, 1.5=UndergroundCeiling, 2.0=Floor, 2.5=SlabOnGrade, 2.75=ExposedFloor, 3.0=Ceiling, 5.0=Window, 6.0=Context" | |
}, | |
"vertices": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/VertexSchema" | |
} | |
}, | |
"rad_properties": { | |
"properties": { | |
"uuid": { | |
"type": "string" | |
}, | |
"material": { | |
"$ref": "#/definitions/MaterialSchema" | |
} | |
} | |
}, | |
"surface_states": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/SurfaceStateSchema" | |
} | |
} | |
} | |
}, | |
"HBSurfaceSchema": { | |
"properties": { | |
"parent_surface": { | |
"$ref": "#/definitions/AnalysisSurfaceSchema" | |
}, | |
"child_surfaces": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/AnalysisSurfaceSchema" | |
} | |
} | |
} | |
}, | |
"WeaSchema": { | |
"required": [ | |
"location", | |
"header", | |
"data" | |
], | |
"properties": { | |
"header": { | |
"type": "array", | |
"minItems": 8, | |
"maxItems": 8, | |
"items": { | |
"type": "string" | |
} | |
}, | |
"location": { | |
"$ref": "#/definitions/EpwLocationSchema" | |
}, | |
"direct_normal_radiation": { | |
"$ref": "#/definitions/DataCollectionSchema" | |
}, | |
"diffuse_horizontal_radiation": { | |
"$ref": "#/definitions/DataCollectionSchema" | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment