{"swagger": "2.0", "basePath": "/api", "paths": {"/clients/": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "Creates a new client", "operationId": "post_client_collection", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20client"}}], "tags": ["clients"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20clients"}}}, "summary": "Returns list of clients", "operationId": "get_client_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["clients"]}}, "/clients/{client_name}": {"parameters": [{"name": "client_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Client not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20client"}}}, "summary": "Returns a Client", "operationId": "get_client_item", "parameters": [{"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["clients"]}}, "/clients/{client_name}/der_events": {"parameters": [{"name": "client_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Client not found."}}, "summary": "Creates DerEvents through post request", "operationId": "post_client_der_events", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/List%20of%20Post%20Der%20Events"}}], "tags": ["clients"]}, "put": {"responses": {"404": {"description": "Client not found."}}, "summary": "Edits DerEvent based off of ID through put request", "operationId": "put_client_der_events", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/List%20of%20Put%20Der%20Events"}}], "tags": ["clients"]}, "get": {"responses": {"404": {"description": "Client not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Der%20Events"}}}, "summary": "Gets all active/upcoming DerEvents or within the past 24 hours", "operationId": "get_client_der_events", "parameters": [{"name": "get_past_events", "in": "query", "type": "boolean", "description": "Gets all events where end_date is less than 24 hours in the past", "default": false}, {"name": "group_name", "in": "query", "type": "string", "description": "Provide Group Name to filter events"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["clients"]}}, "/clients/{client_name}/sites": {"parameters": [{"name": "client_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20sites"}}}, "summary": "Returns sites that belong to the provided client", "operationId": "get_site_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["clients"]}}, "/clients/{client_name}/volttron_agent_package": {"parameters": [{"name": "client_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Post file upload to Volttron Agent Package", "operationId": "post_client_volttron_agent_package", "parameters": [{"name": "file", "in": "formData", "type": "file", "required": true, "description": "The file to upload."}, {"name": "package_name", "in": "query", "type": "string", "required": true}, {"name": "description", "in": "query", "type": "string"}], "consumes": ["multipart/form-data"], "tags": ["clients"]}, "get": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Downloads file from volttron_agent_package", "operationId": "get_client_volttron_agent_package", "parameters": [{"name": "volttron_agent_package_id", "in": "query", "type": "string", "required": true, "description": "ID of package to download"}], "tags": ["clients"]}}, "/clients/{client_name}/volttron_agent_package/list": {"parameters": [{"name": "client_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Client not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Volttron%20Agent%20Packages"}}}, "summary": "Returns a list of Volttron Agent Packages configured for a gateway", "operationId": "get_client_volttron_agent_package_list", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "voltron_agent_package_name", "in": "query", "type": "string"}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["clients"]}}, "/gateways/": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "Creates a new gateway", "operationId": "post_gateway_collection", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20gateway%20device"}}], "tags": ["gateways"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20gateways"}}}, "summary": "Returns list of sites", "operationId": "get_gateway_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "show_archived", "in": "query", "type": "boolean", "description": "Whether to collect archived gateways", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "patch": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "update property(s) on gateway", "operationId": "patch_gateway_item", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20gateway%20device"}}], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20gateway%20device"}}}, "summary": "Returns a gateway", "operationId": "get_gateway_item", "parameters": [{"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/agent_configs": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Post agent config models", "operationId": "post_gateway_agent_configs", "parameters": [{"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/List%20of%20Agent%20Configs"}}], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Agent%20Configs"}}}, "summary": "Returns a list of agent configs configured for a gateway", "operationId": "get_gateway_agent_configs", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "agent_identity", "in": "query", "type": "string", "description": "Provide agent identity to filter by identity"}, {"name": "active", "in": "query", "type": "boolean", "description": "Set True to see only active agent configs", "default": true}, {"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/der_events": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Der%20Events"}}}, "summary": "Gets all active/upcoming DerEvents or within the past 24 hours", "operationId": "get_gateway_der_events", "parameters": [{"name": "get_past_events", "in": "query", "type": "boolean", "description": "Gets all events where end_date is less than 24 hours in the past", "default": false}, {"name": "group_name", "in": "query", "type": "string", "description": "Provide Group Name to filter events"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/hawke_configuration": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Post hawke configurations if exists, else activates existing configs", "operationId": "post_gateway_hawke_configuration", "parameters": [{"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/List%20of%20Hawke%20Configs"}}], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Hawke%20Configs"}}}, "summary": "Gets most recent configuration pushed for all hawke agents", "operationId": "get_gateway_hawke_configuration", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "hash", "in": "query", "type": "string", "description": "Optional for retrieving specific hash"}, {"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/hawke_configuration/{hawke_agent_id}": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}, {"name": "hawke_agent_id", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway or Hawke Agent Identity not found."}}, "summary": "Post hawke configuration if exists, else activates existing config", "operationId": "post_gateway_hawke_agent_configuration", "parameters": [{"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Hawke%20Config%20Base"}}], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway or Hawke Agent Identity not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Hawke%20Config%20Base"}}}, "summary": "Gets most recent configuration for hawke agent id", "operationId": "get_gateway_hawke_agent_configuration", "parameters": [{"name": "hash", "in": "query", "type": "string", "description": "Optional for retrieving specific hash"}, {"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/hawke_configuration/{hawke_agent_id}/list": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}, {"name": "hawke_agent_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Gateway or Hawke Agent Identity not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Hawke%20Configs"}}}, "summary": "Gets most recent configuration pushed for all hawke agents", "operationId": "get_gateway_hawke_configuration_list", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "use_base64_hash", "in": "query", "type": "boolean", "description": "Set True to receive/accept a base64 string as the hash otherwise receive/accept ASCII hex string", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/pcap": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Post PCAP file to S3 for a gateway", "operationId": "post_gateway_pcap", "parameters": [{"name": "file", "in": "formData", "type": "file", "required": true, "description": "File to upload"}], "consumes": ["multipart/form-data"], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Downloads PCAP file for a gateway", "operationId": "get_gateway_pcap", "parameters": [{"name": "file_name", "in": "query", "type": "string", "required": true, "description": "File name to download"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/pcap/list": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20file%20names"}}}, "summary": "Returns a list of pcap files stored from a gateway", "operationId": "get_gateway_pcap_list", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "start_time", "in": "query", "type": "string", "required": true, "description": "ISO format start time"}, {"name": "end_time", "in": "query", "type": "string", "required": true, "description": "ISO format end time"}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/token": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/An%20authorization%20token%20used%20to%20access%20ACE%20Manager%20API"}}}, "summary": "Creates creates a new token for a gateway", "operationId": "post_gateway_token_item", "parameters": [{"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/volttron_agent_config_package": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway Identity not found."}}, "summary": "Creates Volttron Agent with Agent Config and links Volttron Agent Package if id is provided", "description": "Volttron Agent must be provided, Agent Config and Volttron Agent Package are optional", "operationId": "post_volttron_agent_config_package", "parameters": [{"name": "use_agent_config_base64_hash", "in": "query", "type": "boolean", "description": "Flag to indicate whether the Agent Config property should be encoded in base64. Set to True to enable base64 encoding.", "default": false}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Upload%20Combined%20Volttron%20Agent%2C%20Agent%20Config%2C%20and%20attaches%20Volttron%20Agent%20Package%20to%20Volttron%20Agent."}}], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway Identity not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Gets%20Volttron%20Agent%20and%20currently%20connected%20active%20Agent%20Config%20and%20Volttron%20Agent%20Package."}}}, "summary": "Gets a Volttron Agent along with current agent config and linked volttron agent package", "operationId": "get_volttron_agent_config_package", "parameters": [{"name": "volttron_agent_identity", "in": "query", "type": "string", "required": true}, {"name": "use_agent_config_base64_hash", "in": "query", "type": "boolean", "description": "Flag to indicate whether the Agent Config property should be encoded in base64. Set to True to enable base64 encoding.", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/gateways/{gateway_name}/volttron_agents": {"parameters": [{"name": "gateway_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Gateway not found."}}, "summary": "Post volttron agent models or overwrite them based on identity", "operationId": "post_gateway_volttron_agents", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/List%20of%20Volttron%20Agents"}}], "tags": ["gateways"]}, "get": {"responses": {"404": {"description": "Gateway not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20Volttron%20Agents"}}}, "summary": "Returns a list of agent models configured for a gateway", "operationId": "get_gateway_volttron_agents", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "volttron_agent_identity", "in": "query", "type": "string"}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["gateways"]}}, "/points/": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "Creates a new set of Points     ", "operationId": "post_point_collection", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20list%20of%20points"}}, {"name": "overwrite_m_tags", "in": "query", "type": "boolean", "description": "Enable to overwrite current Marker Tags", "default": false}, {"name": "overwrite_kv_tags", "in": "query", "type": "boolean", "description": "Enable to overwrite current Key Value Tags", "default": false}], "tags": ["points"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20points"}}}, "summary": "Returns list of Points", "operationId": "get_point_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["points"]}}, "/points/get_timeseries": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20list%20of%20timeseries%20samples"}}}, "summary": "Returns list of Points timeseries data given a list of points name", "operationId": "post_point_collection_timeseries", "parameters": [{"name": "start_time", "in": "query", "type": "string", "required": true, "description": "ISO format start time"}, {"name": "end_time", "in": "query", "type": "string", "required": true, "description": "ISO format end time"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20list%20of%20points"}}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["points"]}}, "/points/{point_name}": {"parameters": [{"name": "point_name", "in": "path", "required": true, "type": "string"}], "put": {"responses": {"404": {"description": "Point not found."}}, "summary": "Edits a Point", "operationId": "put_point_item", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20point"}}, {"name": "overwrite_m_tags", "in": "query", "type": "boolean", "description": "Enable to overwrite current Marker Tags", "default": false}, {"name": "overwrite_kv_tags", "in": "query", "type": "boolean", "description": "Enable to overwrite current Key Value Tags", "default": false}], "tags": ["points"]}, "get": {"responses": {"404": {"description": "Point not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20point"}}}, "summary": "Returns a point", "operationId": "get_point_item", "parameters": [{"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["points"]}}, "/points/{point_name}/timeseries": {"parameters": [{"name": "point_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Point not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20list%20of%20timeseries%20samples"}}}, "summary": "Returns a point's timeseries", "operationId": "get_point_time_series", "parameters": [{"name": "start_time", "in": "query", "type": "string", "required": true, "description": "ISO format start time"}, {"name": "end_time", "in": "query", "type": "string", "required": true, "description": "ISO format end time"}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["points"]}}, "/sites/": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "Creates a new site", "operationId": "post_sites_collection", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20site"}}], "tags": ["sites"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20sites"}}}, "summary": "Returns list of sites", "operationId": "get_sites_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "collect_enabled", "in": "query", "type": "boolean", "description": "Whether to collect only sites with at least one collect enabled point", "default": false}, {"name": "show_archived", "in": "query", "type": "boolean", "description": "Whether to collect archived sites", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}, "/sites/{site_name}": {"parameters": [{"name": "site_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Site not found."}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20site"}}}, "summary": "Returns a site", "operationId": "get_site_item", "parameters": [{"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}, "/sites/{site_name}/configured_points": {"parameters": [{"name": "site_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20points"}}}, "summary": "Get a single site by name", "operationId": "get_configured_point_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}, "/sites/{site_name}/points": {"parameters": [{"name": "site_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Page%20of%20points"}}}, "summary": "Get points for a particular site", "operationId": "get_point_collection", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Results per page {error_msg}", "default": 10, "enum": [2, 10, 20, 30, 40, 50, 100, 500, 1000, 5000, 10000, 100000]}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}, "/sites/{site_name}/timeseries": {"parameters": [{"name": "site_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "No data for time period"}}, "summary": "Accepts a sample and persists it to the site", "operationId": "post_site_time_series", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/A%20list%20of%20timeseries%20samples"}}], "tags": ["sites"]}, "get": {"responses": {"404": {"description": "No data for time period"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/A%20list%20of%20timeseries%20samples"}}}, "summary": "Returns a collection of timeseries for a site", "operationId": "get_site_time_series", "parameters": [{"name": "start_time", "in": "query", "type": "string", "required": true, "description": "ISO format start time"}, {"name": "end_time", "in": "query", "type": "string", "required": true, "description": "ISO format end time"}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}, "/sites/{site_name}/timeseries/paginated": {"parameters": [{"name": "site_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "No data for time period"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Paginated%20list%20of%20timeseries%20samples"}}}, "summary": "Returns a collection of timeseries for a site", "operationId": "get_site_time_series_paginated", "parameters": [{"name": "start_time", "in": "query", "type": "string", "required": true, "description": "ISO format start time"}, {"name": "end_time", "in": "query", "type": "string", "required": true, "description": "ISO format end time"}, {"name": "cursor", "in": "query", "type": "string", "description": "Cursor for pagination through timeseries data"}, {"name": "page_size", "in": "query", "type": "integer", "description": "Number of records per page {error_msg}", "default": 10000, "enum": [3, 10, 50, 100, 500, 1000, 5000, 10000, 50000, 100000, 300000, 500000]}, {"name": "raw_data", "in": "query", "type": "boolean", "description": "Set to True to return raw data without aggregation or processing. Otherwise will return in 5 minute buckets.", "default": false}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}, "/sites/{site_name}/weather": {"parameters": [{"name": "site_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"properties": {"weather": {"$ref": "#/definitions/Last%20known%20values%20for%20weather%20trending%20points"}}}}}, "summary": "Returns last known values for weather trendable points", "operationId": "get_site_weather", "parameters": [{"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["sites"]}}}, "info": {"title": "ACE Deploy API", "version": "1.0", "description": "Manage deployed Gateways and Data"}, "produces": ["application/json"], "consumes": ["application/json"], "securityDefinitions": {"apiKey": {"type": "apiKey", "in": "header", "name": "authorization"}}, "security": [{"apiKey": []}], "tags": [{"name": "clients", "description": "Operations related to Clients"}, {"name": "gateways", "description": "Operations related to Gateways"}, {"name": "points", "description": "Operations related to points"}, {"name": "sites", "description": "Operations related to Sites"}], "definitions": {"A client": {"properties": {"id": {"type": "integer", "description": "Unique ID for client"}, "name": {"type": "string"}, "nice_name": {"type": "string"}, "bus_contact": {"type": "string"}, "tech_contact": {"type": "string"}, "address": {"type": "string"}}, "type": "object"}, "Page of clients": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/A client"}}}, "type": "object"}]}, "A page of results": {"properties": {"page": {"type": "integer", "description": "Number of this page of results"}, "pages": {"type": "integer", "description": "Total number of pages of results"}, "per_page": {"type": "integer", "description": "Number of items per page of results"}, "total": {"type": "integer", "description": "Total number of results"}}, "type": "object"}, "Page of sites": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/A site"}}}, "type": "object"}]}, "A site": {"properties": {"id": {"type": "integer", "description": "Unique ID for site"}, "name": {"type": "string", "description": "Unique path for site"}, "client": {"type": "string", "description": "client display name"}, "address": {"type": "string", "description": "Address for Site"}, "nice_name": {"type": "string", "description": "Nice Name for Site"}, "ansible_user": {"type": "string", "description": "ansible user for deploy tasks"}, "vtron_user": {"type": "string", "description": "Volttron run as user"}, "vtron_ip": {"type": "string", "description": "Volttron IP address"}, "geo_location": {"type": "string", "description": "Geographic Location"}, "mqtt_prefix": {"type": "string", "description": "Mqtt Prefix"}, "latitude": {"type": "number", "description": "latitude of site in degrees"}, "longitude": {"type": "number", "description": "longitude of site in degress"}, "archived": {"type": "boolean", "description": "Archived Site"}}, "type": "object"}, "List of Post Der Events": {"properties": {"der_events": {"type": "array", "items": {"$ref": "#/definitions/Post DerEvent"}}}, "type": "object"}, "Post DerEvent": {"properties": {"timezone": {"type": "string"}, "event_start": {"type": "string", "format": "date-time"}, "event_end": {"type": "string", "format": "date-time"}, "event_type": {"type": "string"}, "group_name": {"type": "string"}, "cancelled": {"type": "boolean"}, "title": {"type": "string", "description": "Event Title"}, "description": {"type": "string"}}, "type": "object"}, "List of Put Der Events": {"properties": {"der_events": {"type": "array", "items": {"$ref": "#/definitions/Put DerEvent"}}}, "type": "object"}, "Put DerEvent": {"properties": {"id": {"type": "string"}, "timezone": {"type": "string"}, "event_start": {"type": "string", "format": "date-time"}, "event_end": {"type": "string", "format": "date-time"}, "event_type": {"type": "string"}, "group_name": {"type": "string"}, "cancelled": {"type": "boolean"}, "title": {"type": "string", "description": "Event Title"}, "description": {"type": "string"}}, "type": "object"}, "Page of Der Events": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/DerEvent"}}}, "type": "object"}]}, "DerEvent": {"properties": {"id": {"type": "string"}, "timezone": {"type": "string"}, "event_start": {"type": "string", "format": "date-time"}, "event_end": {"type": "string", "format": "date-time"}, "event_type": {"type": "string"}, "group_name": {"type": "string"}, "client": {"type": "string"}, "created_by_user": {"type": "string"}, "cancelled": {"type": "boolean"}, "title": {"type": "string", "description": "Event Title"}, "description": {"type": "string"}, "updated": {"type": "string", "format": "date-time", "description": "Last updated/utilized in ISO8601 String", "readOnly": true}, "created": {"type": "string", "format": "date-time", "description": "Date created in ISO8601 String", "readOnly": true}}, "type": "object"}, "Page of Volttron Agent Packages": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/Volttron Agent Package"}}}, "type": "object"}]}, "Volttron Agent Package": {"properties": {"id": {"type": "string"}, "package_name": {"type": "string"}, "object_hash": {"type": "string"}, "object_path": {"type": "string"}, "description": {"type": "string", "description": "Description"}, "created": {"type": "string", "format": "date-time", "description": "Date created in ISO8601 String", "readOnly": true}}, "type": "object"}, "A gateway device": {"properties": {"name": {"type": "string", "description": "Gateway name"}, "site": {"type": "string"}, "client": {"type": "string", "description": "Client Name"}, "hw_type": {"type": "string", "description": "Hardware Type", "readOnly": true}, "software_type": {"type": "string", "description": "Software Type", "readOnly": true}, "primary_mac": {"type": "string", "description": "Primary mac IP"}, "vpn_ip": {"type": "string", "description": "Overlay IP"}, "device_token": {"type": "string", "description": "Device Token"}, "interfaces": {"type": "object", "description": "Interface JSON Blob"}, "deploy_config": {"type": "object", "description": "Deployment Specific Config JSON Blob"}, "device_token_expires": {"type": "string", "description": "Gateway API Key Expiration"}, "archived": {"type": "boolean", "description": "Archived Gateway"}, "updated": {"type": "string", "format": "date-time", "description": "Last updated in ISO8601 String", "readOnly": true}}, "type": "object"}, "Page of gateways": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/A gateway device"}}}, "type": "object"}]}, "An authorization token used to access ACE Manager API": {"properties": {"auth_token": {"type": "string", "description": "An authorization token used to access ACE Manager API"}}, "type": "object"}, "List of Hawke Configs": {"properties": {"hawke_agents": {"type": "array", "items": {"$ref": "#/definitions/Hawke Config With Identity"}}}, "type": "object"}, "Hawke Config With Identity": {"allOf": [{"$ref": "#/definitions/Hawke Config Base"}, {"properties": {"hawke_identity": {"type": "string", "description": "Hawke Identity"}}, "type": "object"}]}, "Hawke Config Base": {"properties": {"content_hash": {"type": "string"}, "content_blob": {"type": "string", "description": "Hawke Config Content Blob"}, "updated": {"type": "string", "format": "date-time", "description": "Last updated/utilized in ISO8601 String", "readOnly": true}, "created": {"type": "string", "format": "date-time", "description": "Date created in ISO8601 String", "readOnly": true}}, "type": "object"}, "Page of Hawke Configs": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/Hawke Config With Identity"}}}, "type": "object"}]}, "List of Volttron Agents": {"properties": {"volttron_agents": {"type": "array", "items": {"$ref": "#/definitions/Post Volttron Agent"}}}, "type": "object"}, "Post Volttron Agent": {"properties": {"identity": {"type": "string"}, "package_name": {"type": "string"}, "revision": {"type": "string"}, "tag": {"type": "string"}, "active": {"type": "boolean"}, "volttron_agent_package_id": {"type": "string"}}, "type": "object"}, "Page of Volttron Agents": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/Volttron Agent"}}}, "type": "object"}]}, "Volttron Agent": {"properties": {"id": {"type": "string"}, "identity": {"type": "string"}, "package_name": {"type": "string"}, "revision": {"type": "string"}, "tag": {"type": "string"}, "active": {"type": "boolean"}, "package_id": {"type": "string", "readOnly": true}, "updated": {"type": "string", "format": "date-time", "description": "Last updated/utilized in ISO8601 String", "readOnly": true}, "created": {"type": "string", "format": "date-time", "description": "Date created in ISO8601 String", "readOnly": true}}, "type": "object"}, "List of Agent Configs": {"properties": {"agent_configs": {"type": "array", "items": {"$ref": "#/definitions/Post Agent Config"}}}, "type": "object"}, "Post Agent Config": {"properties": {"agent_identity": {"type": "string"}, "config_name": {"type": "string", "default": "config"}, "config_hash": {"type": "string"}, "blob": {"type": "string"}, "active": {"type": "boolean", "description": "Agent Config Active"}}, "type": "object"}, "Page of Agent Configs": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/Agent Config"}}}, "type": "object"}]}, "Agent Config": {"properties": {"id": {"type": "string"}, "agent_identity": {"type": "string"}, "config_name": {"type": "string", "default": "config"}, "config_hash": {"type": "string"}, "blob": {"type": "string"}, "active": {"type": "boolean", "description": "Agent Config Active"}, "updated": {"type": "string", "format": "date-time", "description": "Last updated/utilized in ISO8601 String", "readOnly": true}, "created": {"type": "string", "format": "date-time", "description": "Date created in ISO8601 String", "readOnly": true}}, "type": "object"}, "Upload Combined Volttron Agent, Agent Config, and attaches Volttron Agent Package to Volttron Agent.": {"properties": {"volttron_agent": {"$ref": "#/definitions/Post Volttron Agent"}, "agent_config": {"$ref": "#/definitions/Post Agent Config"}}, "type": "object"}, "Gets Volttron Agent and currently connected active Agent Config and Volttron Agent Package.": {"properties": {"volttron_agent_package": {"$ref": "#/definitions/Volttron Agent Package"}, "volttron_agent": {"$ref": "#/definitions/Volttron Agent"}, "agent_config": {"$ref": "#/definitions/Agent Config"}}, "type": "object"}, "Page of file names": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"type": "string"}}}, "type": "object"}]}, "A list of points": {"properties": {"points": {"type": "array", "items": {"$ref": "#/definitions/A point"}}}, "type": "object"}, "A point": {"properties": {"id": {"type": "integer", "description": "Unique ID for point"}, "name": {"type": "string"}, "client": {"type": "string", "description": "Client this point belongs to"}, "site": {"type": "string", "description": "Site this point belongs to"}, "kv_tags": {"type": "object", "description": "Arbitrary key value tags, strings only", "default": {}, "example": {"key": "value"}}, "bacnet_data": {"description": "BACnet communication related metadata", "allOf": [{"$ref": "#/definitions/BACnet Data instance"}]}, "marker_tags": {"type": "array", "description": "Marker tags", "default": [], "items": {"type": "string"}}, "collect_config": {"type": "object", "description": "Config fragment for specific point type"}, "point_type": {"type": "string", "description": "Type of point for encoding/decoding configs"}, "collect_enabled": {"type": "boolean", "description": "Enable collection of data"}, "collect_interval": {"type": "integer", "description": "Interval for collection in seconds"}, "updated": {"type": "string", "format": "date-time", "description": "Last updated in ISO8601 String", "readOnly": true}, "created": {"type": "string", "format": "date-time", "description": "Date created in ISO8601 String", "readOnly": true}}, "type": "object"}, "BACnet Data instance": {"properties": {"device_address": {"type": "string"}, "device_id": {"type": "integer"}, "object_type": {"type": "string"}, "object_index": {"type": "integer"}, "object_name": {"type": "string"}, "device_name": {"type": "string"}, "object_description": {"type": "string"}, "device_description": {"type": "string"}, "scrape_interval": {"type": "integer"}, "scrape_enabled": {"type": "boolean"}, "present_value": {"type": "string"}, "*": {"type": "object", "additionalProperties": {"type": "string"}}}, "type": "object"}, "Page of points": {"allOf": [{"$ref": "#/definitions/A page of results"}, {"properties": {"items": {"type": "array", "items": {"$ref": "#/definitions/A point"}}}, "type": "object"}]}, "A list of timeseries samples": {"properties": {"point_samples": {"type": "array", "items": {"$ref": "#/definitions/Point Sample"}}}, "type": "object"}, "Point Sample": {"properties": {"name": {"type": "string", "description": "Point Name"}, "value": {"type": "string", "description": "Point Sample Value"}, "time": {"type": "string", "format": "date-time"}}, "type": "object"}, "Paginated list of timeseries samples": {"properties": {"point_samples": {"type": "array", "items": {"$ref": "#/definitions/Point Sample"}}, "next_cursor": {"type": "string", "description": "A cursor to retrieve the next page of results"}, "has_more": {"type": "boolean", "description": "Is there more data"}}, "type": "object"}, "Last known values for weather trending points": {"properties": {"temp": {"$ref": "#/definitions/Point Sample"}, "feels_like": {"$ref": "#/definitions/Point Sample"}, "pressure": {"$ref": "#/definitions/Point Sample"}, "humidity": {"$ref": "#/definitions/Point Sample"}, "dew_point": {"$ref": "#/definitions/Point Sample"}, "clouds": {"$ref": "#/definitions/Point Sample"}, "wind_speed": {"$ref": "#/definitions/Point Sample"}, "wind_deg": {"$ref": "#/definitions/Point Sample"}, "wet_bulb": {"$ref": "#/definitions/Point Sample"}}, "type": "object"}}, "responses": {"ParseError": {"description": "When a mask can't be parsed"}, "MaskError": {"description": "When any error occurs on mask"}, "InvalidSignatureError": {"description": "Invalid Signature Handler"}, "ExpiredSignatureError": {"description": "Expired Signature Handler"}, "JWTExtendedException": {"description": "JWT Extended Exception"}, "NoResultFound": {"description": "404 Error"}, "HTTPException": {"description": "HTTP Exception handler - logs details for 4xx errors"}}}
