diff --git a/README.md b/README.md index 1aebb53..1a2ac21 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,14 @@ # Visualise & Edit -Open the `SpeckleV1OpenApiSpecs.yaml` file in the [OpenApi editor](https://editor.swagger.io//#/). +Open the `SpeckleV1OpenApiSpecs.yaml` file in the [OpenApi editor](https://editor.swagger.io//#/). You can then edit at your own ease, and suggest changes, etc. -Documentation generated with shins and widdershins is also available [here](https://speckleworks.github.io/SpeckleSpecs/). - -# Generate clients +# Build the docs -Use the `generate client` option from the [OpenApi editor](https://editor.swagger.io//#/). +To save time, please also follow these quick steps to build the documentation: -# Build the docs +1. `npm install` +2. `npm run build-shins` - this will generate the docs (which are published via github from the `docs` folder. +3. Commit and do a PR. -1. Run `npm-install` -2. Run `npm run build-shins` \ No newline at end of file +That's it! diff --git a/SpeckleV1OpenApiSpecs.md b/SpeckleV1OpenApiSpecs.md index fb29582..76d8e33 100644 --- a/SpeckleV1OpenApiSpecs.md +++ b/SpeckleV1OpenApiSpecs.md @@ -12,74 +12,99 @@ toc_footers: [] includes: [] search: true highlight_theme: darkula +headingLevel: 2 + + --- -# Speckle OpenApi Specs v1.0.0-beta + +

Speckle OpenApi Specs v1.0.0-beta

+ > Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu. + Documentation & specifications for the Speckle Server & Speckle Objects. + Base URLs: + * http://localhost:3000/api/v1 -* https://localhost:3000/api/v1 +* https://localhost:3000/api/v1 Email: SpeckleWorks Web: SpeckleWorks + # Authentication -* API Key +* API Key (JWT_Token_Auth) - Parameter Name: **Authorization**, in: header. +

Accounts

-# Accounts Register, Login and more. + ## UserRegister + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/accounts/register \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/accounts/register HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/accounts/register', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -92,18 +117,16 @@ const inputBody = '{ "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/register', { method: 'POST', @@ -115,24 +138,33 @@ fetch('http://localhost:3000/api/v1/accounts/register', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/accounts/register', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -140,13 +172,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/accounts/register', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/accounts/register"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -161,16 +199,23 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /accounts/register` + *UserRegister* + Registers a new user. + > Body parameter + ```json { "_id": "string", @@ -182,60 +227,28 @@ Registers a new user. "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[User](#schemauser)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[User](#schemauser)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - }, - "resources": [ - { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -243,61 +256,79 @@ body|body|[User](#schemauser)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Failed to register a new user.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Failed to register a new user.|[ResponseBase](#schemaresponsebase)| + + ## UserLogin + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/accounts/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/accounts/login HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/accounts/login', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -310,18 +341,16 @@ const inputBody = '{ "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/login', { method: 'POST', @@ -333,24 +362,33 @@ fetch('http://localhost:3000/api/v1/accounts/login', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/accounts/login', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -358,13 +396,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/accounts/login', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/accounts/login"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -379,16 +423,23 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /accounts/login` + *UserLogin* + Login and get jwt token. + > Body parameter + ```json { "_id": "string", @@ -400,60 +451,28 @@ Login and get jwt token. "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[User](#schemauser)|true|The only required elements are email and password. + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[User](#schemauser)|true|The only required elements are email and password.| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - }, - "resources": [ - { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -461,61 +480,79 @@ body|body|[User](#schemauser)|true|The only required elements are email and pass "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|You've logged in.|[ResponseUser](#schemaresponseuser) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|You've logged in.|[ResponseUser](#schemaresponseuser)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## UserSearch + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/accounts/search \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/accounts/search HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/accounts/search', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -528,18 +565,16 @@ const inputBody = '{ "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/search', { method: 'POST', @@ -551,24 +586,33 @@ fetch('http://localhost:3000/api/v1/accounts/search', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/accounts/search', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -576,13 +620,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/accounts/search', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/accounts/search"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -597,16 +647,23 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /accounts/search` + *UserSearch* + Search for a user by a (partial) email address. + > Body parameter + ```json { "_id": "string", @@ -618,60 +675,28 @@ Search for a user by a (partial) email address. "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[User](#schemauser)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[User](#schemauser)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - }, - "resources": [ - { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -679,71 +704,94 @@ body|body|[User](#schemauser)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## UserGet + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/accounts \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/accounts HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/accounts', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts', { method: 'GET', + headers: headers }) .then(function(res) { @@ -751,36 +799,51 @@ fetch('http://localhost:3000/api/v1/accounts', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/accounts', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/accounts', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/accounts"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -795,54 +858,29 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /accounts` + *UserGet* + Gets your profile. + > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - }, - "resources": [ - { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -850,61 +888,79 @@ Gets your profile. "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail.|[ResponseBase](#schemaresponsebase)| + + ## UserUpdateProfile + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/accounts \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/accounts HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/accounts', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -917,18 +973,16 @@ const inputBody = '{ "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts', { method: 'PUT', @@ -940,24 +994,33 @@ fetch('http://localhost:3000/api/v1/accounts', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/accounts', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -965,13 +1028,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/accounts', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/accounts"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -986,16 +1055,23 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /accounts` + *UserUpdateProfile* + Updates your profile. + > Body parameter + ```json { "_id": "string", @@ -1007,30 +1083,28 @@ Updates your profile. "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[User](#schemauser)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[User](#schemauser)|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -1038,71 +1112,94 @@ body|body|[User](#schemauser)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Things are looking good yo.|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Things are looking good yo.|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail.|[ResponseBase](#schemaresponsebase)| + + ## UserGetProfileById + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/accounts/{userId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/accounts/{userId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/accounts/{userId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/{userId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -1110,36 +1207,51 @@ fetch('http://localhost:3000/api/v1/accounts/{userId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/accounts/{userId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/accounts/{userId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/accounts/{userId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -1154,61 +1266,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /accounts/{userId}` + *UserGetProfileById* + Gets a user's profile. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -userId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|userId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - }, - "resources": [ - { - "_id": "string", - "role": "string", - "avatar": "string", - "apitoken": "string", - "token": "string", - "email": "string", - "name": "string", - "surname": "string", - "company": "string", - "logins": [ - { - "date": "string" - } - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -1216,75 +1304,100 @@ userId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New user successfully registered.|[ResponseUser](#schemaresponseuser)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + -# Clients + +

Clients

+ Create, get and update application clients. + ## ClientGetAll + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/clients \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/clients HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/clients', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients', { method: 'GET', + headers: headers }) .then(function(res) { @@ -1292,36 +1405,51 @@ fetch('http://localhost:3000/api/v1/clients', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/clients', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/clients', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/clients"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -1336,68 +1464,29 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /clients` + *ClientGetAll* + Gets a user's profile. + > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -1405,61 +1494,79 @@ Gets a user's profile. "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseClient](#schemaresponseclient) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseClient](#schemaresponseclient)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ClientCreate + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/clients \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/clients HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/clients', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -1467,15 +1574,9 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -1489,8 +1590,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients', { method: 'POST', @@ -1502,24 +1605,33 @@ fetch('http://localhost:3000/api/v1/clients', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/clients', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -1527,13 +1639,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/clients', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/clients"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -1548,31 +1666,32 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /clients` + *ClientCreate* + Create a client + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -1583,67 +1702,25 @@ Create a client "online": true } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[AppClient](#schemaappclient)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[AppClient](#schemaappclient)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -1651,61 +1728,79 @@ body|body|[AppClient](#schemaappclient)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseClient](#schemaresponseclient) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseClient](#schemaresponseclient)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ClientUpdate + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/clients/{clientId} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/clients/{clientId} HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/clients/{clientId}', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -1713,15 +1808,9 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -1735,8 +1824,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients/{clientId}', { method: 'PUT', @@ -1748,24 +1839,33 @@ fetch('http://localhost:3000/api/v1/clients/{clientId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/clients/{clientId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -1773,13 +1873,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/clients/{clientId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/clients/{clientId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -1794,31 +1900,32 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /clients/{clientId}` + *ClientUpdate* + Update a client + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -1829,68 +1936,26 @@ Update a client "online": true } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -clientId|path|string|true|No description -body|body|[AppClient](#schemaappclient)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|clientId|path|string|true|No description| +|body|body|[AppClient](#schemaappclient)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -1898,71 +1963,94 @@ body|body|[AppClient](#schemaappclient)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseClient](#schemaresponseclient) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseClient](#schemaresponseclient)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ClientGet + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/clients/{clientId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/clients/{clientId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/clients/{clientId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients/{clientId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -1970,36 +2058,51 @@ fetch('http://localhost:3000/api/v1/clients/{clientId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/clients/{clientId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/clients/{clientId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/clients/{clientId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -2014,75 +2117,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /clients/{clientId}` + *ClientGet* + Get a client -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -clientId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|clientId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "role": "string", - "documentGuid": "string", - "documentName": "string", - "documentType": "string", - "documentLocation": "string", - "streamId": "string", - "online": true - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -2090,71 +2155,94 @@ clientId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The client.|[ResponseClient](#schemaresponseclient) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The client.|[ResponseClient](#schemaresponseclient)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ClientDelete + + + + > Code samples + ```shell # You can also use wget curl -X DELETE http://localhost:3000/api/v1/clients/{clientId} \ -H 'Accept: application/json' + ``` + ```http DELETE http://localhost:3000/api/v1/clients/{clientId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/clients/{clientId}', method: 'delete', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients/{clientId}', { method: 'DELETE', + headers: headers }) .then(function(res) { @@ -2162,36 +2250,51 @@ fetch('http://localhost:3000/api/v1/clients/{clientId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.delete 'http://localhost:3000/api/v1/clients/{clientId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.delete('http://localhost:3000/api/v1/clients/{clientId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/clients/{clientId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -2206,31 +2309,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `DELETE /clients/{clientId}` + *ClientDelete* + Deletes a client -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -clientId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|clientId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -2238,75 +2347,100 @@ clientId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + -# Projects + +

Projects

+ Create, get and update projects. + ## ProjectGetAll + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/projects \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/projects HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/projects', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects', { method: 'GET', + headers: headers }) .then(function(res) { @@ -2314,36 +2448,51 @@ fetch('http://localhost:3000/api/v1/projects', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/projects', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/projects', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/projects"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -2358,74 +2507,29 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /projects` + *ProjectGetAll* + Gets a user's projects. + > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -2433,61 +2537,79 @@ Gets a user's projects. "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseProject](#schemaresponseproject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseProject](#schemaresponseproject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ProjectCreate + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/projects \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/projects HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/projects', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -2495,33 +2617,24 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects', { method: 'POST', @@ -2533,24 +2646,33 @@ fetch('http://localhost:3000/api/v1/projects', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/projects', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -2558,13 +2680,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/projects', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/projects"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -2579,111 +2707,59 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /projects` -*ProjectCreate* + +*Create* + Create a project + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[Project](#schemaproject)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[Project](#schemaproject)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -2691,61 +2767,79 @@ body|body|[Project](#schemaproject)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseProject](#schemaresponseproject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's clients.|[ResponseProject](#schemaresponseproject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ProjectUpdate + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/projects/{projectId} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/projects/{projectId} HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/projects/{projectId}', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -2753,33 +2847,24 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects/{projectId}', { method: 'PUT', @@ -2791,24 +2876,33 @@ fetch('http://localhost:3000/api/v1/projects/{projectId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/projects/{projectId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -2816,13 +2910,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/projects/{projectId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/projects/{projectId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -2837,112 +2937,60 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /projects/{projectId}` + *ProjectUpdate* + Update a project + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -projectId|path|string|true|No description -body|body|[Project](#schemaproject)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|projectId|path|string|true|No description| +|body|body|[Project](#schemaproject)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -2950,71 +2998,94 @@ body|body|[Project](#schemaproject)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseProject](#schemaresponseproject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseProject](#schemaresponseproject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ProjectGet + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/projects/{projectId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/projects/{projectId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/projects/{projectId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects/{projectId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -3022,36 +3093,51 @@ fetch('http://localhost:3000/api/v1/projects/{projectId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/projects/{projectId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/projects/{projectId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/projects/{projectId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -3066,81 +3152,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /projects/{projectId}` + *ProjectGet* + Get a project -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -projectId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|projectId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -3148,71 +3190,94 @@ projectId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The client.|[ResponseProject](#schemaresponseproject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The client.|[ResponseProject](#schemaresponseproject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ProjectDelete + + + + > Code samples + ```shell # You can also use wget curl -X DELETE http://localhost:3000/api/v1/projects/{projectId} \ -H 'Accept: application/json' + ``` + ```http DELETE http://localhost:3000/api/v1/projects/{projectId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/projects/{projectId}', method: 'delete', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects/{projectId}', { method: 'DELETE', + headers: headers }) .then(function(res) { @@ -3220,36 +3285,51 @@ fetch('http://localhost:3000/api/v1/projects/{projectId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.delete 'http://localhost:3000/api/v1/projects/{projectId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.delete('http://localhost:3000/api/v1/projects/{projectId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/projects/{projectId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -3264,31 +3344,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `DELETE /projects/{projectId}` + *ProjectDelete* + Deletes a project -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -projectId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|projectId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -3296,65 +3382,85 @@ projectId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + -# Comments + +

Comments

+ Create, get and update comments. + ## CommentCreate + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -3362,28 +3468,15 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" }'; @@ -3391,8 +3484,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', { method: 'POST', @@ -3404,24 +3499,33 @@ fetch('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -3429,13 +3533,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -3450,134 +3560,74 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /comments/{resourceType}/{resourceId}` + *CommentCreate* + Creates a comment on a resource. + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -resourceType|path|string|true|The resource type you want to comment on. -resourceId|path|string|true|The resource id you want to comment on. In the case of streams, it must be a streamId. -body|body|[Comment](#schemacomment)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|resourceType|path|string|true|The resource type you want to comment on.| +|resourceId|path|string|true|The resource id you want to comment on. In the case of streams, it must be a streamId.| +|body|body|[Comment](#schemacomment)|true|No description| #### Enumerated Values + |Parameter|Value| |---|---| -resourceType|stream| -resourceType|object| -resourceType|project| -resourceType|comment| +|resourceType|stream| +|resourceType|object| +|resourceType|project| +|resourceType|comment| + > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, - "text": "string", - "assignedTo": [ - "string" - ], - "closed": true, - "labels": [ - "string" - ], - "view": {}, - "screenshot": "string" - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, - "text": "string", - "assignedTo": [ - "string" - ], - "closed": true, - "labels": [ - "string" - ], - "view": {}, - "screenshot": "string" - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -3585,71 +3635,94 @@ resourceType|comment| "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseComment](#schemaresponsecomment) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseComment](#schemaresponsecomment)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## CommentGetFromResource + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -3657,36 +3730,51 @@ fetch('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -3701,99 +3789,49 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /comments/{resourceType}/{resourceId}` + *CommentGetFromResource* + Gets the comments from a resource. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -resourceType|path|string|true|The resource type you want to comment on. -resourceId|path|string|true|The resource id you want to comment on. In the case of streams, it must be a streamId. +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|resourceType|path|string|true|The resource type you want to comment on.| +|resourceId|path|string|true|The resource id you want to comment on. In the case of streams, it must be a streamId.| #### Enumerated Values + |Parameter|Value| |---|---| -resourceType|stream| -resourceType|object| -resourceType|project| -resourceType|comment| +|resourceType|stream| +|resourceType|object| +|resourceType|project| +|resourceType|comment| + > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, - "text": "string", - "assignedTo": [ - "string" - ], - "closed": true, - "labels": [ - "string" - ], - "view": {}, - "screenshot": "string" - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, - "text": "string", - "assignedTo": [ - "string" - ], - "closed": true, - "labels": [ - "string" - ], - "view": {}, - "screenshot": "string" - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -3801,71 +3839,94 @@ resourceType|comment| "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseComment](#schemaresponsecomment) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseComment](#schemaresponsecomment)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## CommentGet + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/comments/{commentId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/comments/{commentId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/comments/{commentId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{commentId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -3873,36 +3934,51 @@ fetch('http://localhost:3000/api/v1/comments/{commentId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/comments/{commentId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/comments/{commentId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/comments/{commentId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -3917,89 +3993,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /comments/{commentId}` + *CommentGet* + Gets a specific comment. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -commentId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|commentId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, - "text": "string", - "assignedTo": [ - "string" - ], - "closed": true, - "labels": [ - "string" - ], - "view": {}, - "screenshot": "string" - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, - "text": "string", - "assignedTo": [ - "string" - ], - "closed": true, - "labels": [ - "string" - ], - "view": {}, - "screenshot": "string" - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -4007,61 +4031,79 @@ commentId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseComment](#schemaresponsecomment) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseComment](#schemaresponsecomment)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## CommentUpdate + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/comments/{commentId} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/comments/{commentId} HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/comments/{commentId}', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -4069,28 +4111,15 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" }'; @@ -4098,8 +4127,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{commentId}', { method: 'PUT', @@ -4111,24 +4142,33 @@ fetch('http://localhost:3000/api/v1/comments/{commentId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/comments/{commentId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -4136,13 +4176,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/comments/{commentId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/comments/{commentId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -4157,66 +4203,62 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /comments/{commentId}` + *CommentUpdate* + Updates a comment. + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -commentId|path|string|true|No description -body|body|[Comment](#schemacomment)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|commentId|path|string|true|No description| +|body|body|[Comment](#schemacomment)|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -4224,71 +4266,94 @@ body|body|[Comment](#schemacomment)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## CommentDelete + + + + > Code samples + ```shell # You can also use wget curl -X DELETE http://localhost:3000/api/v1/comments/{commentId} \ -H 'Accept: application/json' + ``` + ```http DELETE http://localhost:3000/api/v1/comments/{commentId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/comments/{commentId}', method: 'delete', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{commentId}', { method: 'DELETE', + headers: headers }) .then(function(res) { @@ -4296,36 +4361,51 @@ fetch('http://localhost:3000/api/v1/comments/{commentId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.delete 'http://localhost:3000/api/v1/comments/{commentId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.delete('http://localhost:3000/api/v1/comments/{commentId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/comments/{commentId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -4340,31 +4420,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `DELETE /comments/{commentId}` + *CommentDelete* + Deletes a specific comment. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -commentId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|commentId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -4372,75 +4458,100 @@ commentId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + -# Streams + +

Streams

+ Create, get and update streams. + ## StreamsGetAll + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/streams \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/streams HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams', { method: 'GET', + headers: headers }) .then(function(res) { @@ -4448,36 +4559,51 @@ fetch('http://localhost:3000/api/v1/streams', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/streams', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/streams', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -4492,196 +4618,29 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /streams` + *StreamsGetAll* + Gets a user's streams. + > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -4689,61 +4648,79 @@ Gets a user's streams. "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStream](#schemaresponsestream) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStream](#schemaresponsestream)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamCreate + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/streams \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/streams HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -4751,94 +4728,30 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams', { method: 'POST', @@ -4850,24 +4763,33 @@ fetch('http://localhost:3000/api/v1/streams', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/streams', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -4875,13 +4797,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/streams', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -4896,294 +4824,65 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /streams` + *StreamCreate* + Create a stream + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|[SpeckleStream](#schemaspecklestream)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[SpeckleStream](#schemaspecklestream)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -5191,71 +4890,94 @@ body|body|[SpeckleStream](#schemaspecklestream)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStream](#schemaresponsestream) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStream](#schemaresponsestream)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamGet + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/streams/{streamId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/streams/{streamId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams/{streamId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -5263,36 +4985,51 @@ fetch('http://localhost:3000/api/v1/streams/{streamId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/streams/{streamId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/streams/{streamId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -5307,204 +5044,38 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /streams/{streamId}` + *StreamGet* + Gets a specific stream. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -streamId|path|string|true|No description -query|query|string|false|Specifiy which fields to retrieve, ie `?fields=layers,baseProperties`. +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|streamId|path|string|true|No description| +|query|query|string|false|Specifiy which fields to retrieve, ie `?fields=layers,baseProperties`.| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -5512,61 +5083,79 @@ query|query|string|false|Specifiy which fields to retrieve, ie `?fields=layers,b "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStream](#schemaresponsestream) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStream](#schemaresponsestream)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamUpdate + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/streams/{streamId} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/streams/{streamId} HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams/{streamId}', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -5574,94 +5163,30 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}', { method: 'PUT', @@ -5673,24 +5198,33 @@ fetch('http://localhost:3000/api/v1/streams/{streamId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/streams/{streamId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -5698,13 +5232,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/streams/{streamId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -5719,123 +5259,66 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /streams/{streamId}` + *StreamUpdate* + Updates a stream. + > Body parameter + ```json { "_id": "string", "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] } ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -streamId|path|string|true|No description -body|body|[SpeckleStream](#schemaspecklestream)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|streamId|path|string|true|No description| +|body|body|[SpeckleStream](#schemaspecklestream)|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -5843,71 +5326,94 @@ body|body|[SpeckleStream](#schemaspecklestream)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamDelete + + + + > Code samples + ```shell # You can also use wget curl -X DELETE http://localhost:3000/api/v1/streams/{streamId} \ -H 'Accept: application/json' + ``` + ```http DELETE http://localhost:3000/api/v1/streams/{streamId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams/{streamId}', method: 'delete', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}', { method: 'DELETE', + headers: headers }) .then(function(res) { @@ -5915,36 +5421,51 @@ fetch('http://localhost:3000/api/v1/streams/{streamId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.delete 'http://localhost:3000/api/v1/streams/{streamId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.delete('http://localhost:3000/api/v1/streams/{streamId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -5959,31 +5480,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `DELETE /streams/{streamId}` + *StreamDelete* + Deletes a specific stream. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -streamId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|streamId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -5991,71 +5518,94 @@ streamId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamGetObjects + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/streams/{streamId}/objects \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/streams/{streamId}/objects HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams/{streamId}/objects', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}/objects', { method: 'GET', + headers: headers }) .then(function(res) { @@ -6063,36 +5613,51 @@ fetch('http://localhost:3000/api/v1/streams/{streamId}/objects', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/streams/{streamId}/objects', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/streams/{streamId}/objects', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}/objects"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -6107,92 +5672,38 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /streams/{streamId}/objects` + *StreamGetObjects* + Gets stream objects. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -streamId|path|string|true|No description -query|query|string|false|Specifiy which fields to retrieve, filters, limits, etc. +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|streamId|path|string|true|No description| +|query|query|string|false|Specifiy which fields to retrieve, filters, limits, etc.| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -6200,71 +5711,94 @@ query|query|string|false|Specifiy which fields to retrieve, filters, limits, etc "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseObject](#schemaresponseobject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseObject](#schemaresponseobject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamClone + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/streams/{streamId}/clone \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/streams/{streamId}/clone HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams/{streamId}/clone', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}/clone', { method: 'POST', + headers: headers }) .then(function(res) { @@ -6272,36 +5806,51 @@ fetch('http://localhost:3000/api/v1/streams/{streamId}/clone', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/streams/{streamId}/clone', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/streams/{streamId}/clone', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}/clone"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -6316,205 +5865,39 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /streams/{streamId}/clone` + *StreamClone* + Clones a stream. -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -streamId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|streamId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ], - "clone": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - }, - "parent": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - } + "resources": [], + "clone": {}, + "parent": {} } ``` ```json @@ -6522,71 +5905,94 @@ streamId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStreamClone](#schemaresponsestreamclone) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStreamClone](#schemaresponsestreamclone)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## StreamDiff + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -6594,36 +6000,51 @@ fetch('http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -6638,114 +6059,40 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /streams/{streamId}/diff/{otherStreamId}` + *StreamDiff* + Diffs two streams (objects and layers). -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -streamId|path|string|true|No description -otherStreamId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|streamId|path|string|true|No description| +|otherStreamId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ], - "objects": { - "common": [ - "string" - ], - "inA": [ - "string" - ], - "inB": [ - "string" - ] - }, - "layers": { - "common": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "inA": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "inB": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ] - } + "resources": [], + "objects": {}, + "layers": {} } ``` ```json @@ -6753,65 +6100,85 @@ otherStreamId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStreamDiff](#schemaresponsestreamdiff) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseStreamDiff](#schemaresponsestreamdiff)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + -# Objects + +

Objects

+ Create, get and update objects. + ## ObjectCreate + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/objects \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/objects HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/objects', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '[ @@ -6821,8 +6188,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects', { method: 'POST', @@ -6834,24 +6203,33 @@ fetch('http://localhost:3000/api/v1/objects', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/objects', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -6859,13 +6237,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/objects', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/objects"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -6880,128 +6264,47 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /objects` + *ObjectCreate* + Create one or more objects + > Body parameter + ```json [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } + {} ] ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -body|body|array[SpeckleObject]|false|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|array[object]|false|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -7009,61 +6312,79 @@ body|body|array[SpeckleObject]|false|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseObject](#schemaresponseobject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseObject](#schemaresponseobject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ObjectUpdate + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/objects/{objectId} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/objects/{objectId} HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/objects/{objectId}', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{ @@ -7071,15 +6392,9 @@ const inputBody = '{ "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "type": "Null", "hash": "hash", @@ -7087,22 +6402,18 @@ const inputBody = '{ "applicationId": "GUID", "properties": {}, "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] + "children": [], + "ancestors": [], + "transform": [] }'; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/{objectId}', { method: 'PUT', @@ -7114,24 +6425,33 @@ fetch('http://localhost:3000/api/v1/objects/{objectId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/objects/{objectId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -7139,13 +6459,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/objects/{objectId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -7160,97 +6486,64 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /objects/{objectId}` + *ObjectUpdate* + Update a object + > Body parameter + ```json -{} +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Null", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [] +} ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -objectId|path|string|true|No description -body|body|[SpeckleObject](#schemaspeckleobject)|true|No description + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|objectId|path|string|true|No description| +|body|body|[SpeckleObject](#schemaspeckleobject)|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -7258,71 +6551,94 @@ body|body|[SpeckleObject](#schemaspeckleobject)|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseObject](#schemaresponseobject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All the users's projects.|[ResponseObject](#schemaresponseobject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ObjectGet + + + + > Code samples + ```shell # You can also use wget curl -X GET http://localhost:3000/api/v1/objects/{objectId} \ -H 'Accept: application/json' + ``` + ```http GET http://localhost:3000/api/v1/objects/{objectId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/objects/{objectId}', method: 'get', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/{objectId}', { method: 'GET', + headers: headers }) .then(function(res) { @@ -7330,36 +6646,51 @@ fetch('http://localhost:3000/api/v1/objects/{objectId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.get 'http://localhost:3000/api/v1/objects/{objectId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.get('http://localhost:3000/api/v1/objects/{objectId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -7374,91 +6705,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `GET /objects/{objectId}` + *ObjectGet* + Get a object -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -objectId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|objectId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -7466,71 +6743,94 @@ objectId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The client.|[ResponseObject](#schemaresponseobject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The client.|[ResponseObject](#schemaresponseobject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ObjectDelete + + + + > Code samples + ```shell # You can also use wget curl -X DELETE http://localhost:3000/api/v1/objects/{objectId} \ -H 'Accept: application/json' + ``` + ```http DELETE http://localhost:3000/api/v1/objects/{objectId} HTTP/1.1 Host: localhost:3000 + Accept: application/json + ``` + ```javascript var headers = { 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/objects/{objectId}', method: 'delete', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); + const headers = { 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/{objectId}', { method: 'DELETE', + headers: headers }) .then(function(res) { @@ -7538,36 +6838,51 @@ fetch('http://localhost:3000/api/v1/objects/{objectId}', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Accept' => 'application/json' } + result = RestClient.delete 'http://localhost:3000/api/v1/objects/{objectId}', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { 'Accept': 'application/json' } + r = requests.delete('http://localhost:3000/api/v1/objects/{objectId}', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -7582,31 +6897,37 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `DELETE /objects/{objectId}` + *ObjectDelete* + Deletes an object -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -objectId|path|string|true|No description +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|objectId|path|string|true|No description| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` ```json @@ -7614,61 +6935,79 @@ objectId|path|string|true|No description "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + + ## ObjectUpdateProperties + + + + > Code samples + ```shell # You can also use wget curl -X PUT http://localhost:3000/api/v1/objects/{objectId}/properties \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http PUT http://localhost:3000/api/v1/objects/{objectId}/properties HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/objects/{objectId}/properties', method: 'put', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '{}'; @@ -7676,8 +7015,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/{objectId}/properties', { method: 'PUT', @@ -7689,24 +7030,33 @@ fetch('http://localhost:3000/api/v1/objects/{objectId}/properties', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.put 'http://localhost:3000/api/v1/objects/{objectId}/properties', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -7714,13 +7064,19 @@ headers = { 'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/objects/{objectId}/properties', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}/properties"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -7735,88 +7091,117 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `PUT /objects/{objectId}/properties` + *ObjectUpdateProperties* + Does a merge update of the object's properties. + > Body parameter + ```json {} ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -objectId|path|string|true|No description -body|body|object|true|An object that holds the keys you want to modify or add. + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|objectId|path|string|true|No description| +|body|body|object|true|An object that holds the keys you want to modify or add.| > Example responses + ```json { "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseBase](#schemaresponsebase)| + + ## ObjectGetBulk + + + + > Code samples + ```shell # You can also use wget curl -X POST http://localhost:3000/api/v1/objects/getbulk \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' + ``` + ```http POST http://localhost:3000/api/v1/objects/getbulk HTTP/1.1 Host: localhost:3000 Content-Type: application/json Accept: application/json + ``` + ```javascript var headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + $.ajax({ url: 'http://localhost:3000/api/v1/objects/getbulk', method: 'post', + headers: headers, success: function(data) { console.log(JSON.stringify(data)); } }) + + ``` + ```javascript--nodejs const request = require('node-fetch'); const inputBody = '[ @@ -7826,8 +7211,10 @@ const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/getbulk', { method: 'POST', @@ -7839,24 +7226,33 @@ fetch('http://localhost:3000/api/v1/objects/getbulk', }).then(function(body) { console.log(body); }); + + ``` + ```ruby require 'rest-client' require 'json' + headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' } + result = RestClient.post 'http://localhost:3000/api/v1/objects/getbulk', params: { }, headers: headers + p JSON.parse(result) + + ``` + ```python import requests headers = { @@ -7864,13 +7260,19 @@ headers = { 'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/objects/getbulk', params={ + }, headers = headers) + print r.json() + + ``` + ```java URL obj = new URL("http://localhost:3000/api/v1/objects/getbulk"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -7885,99 +7287,48 @@ while ((inputLine = in.readLine()) != null) { } in.close(); System.out.println(response.toString()); + + ``` + `POST /objects/getbulk` + *ObjectGetBulk* + Gets a load of objects + > Body parameter + ```json [ "string" ] ``` -### Parameters -Parameter|In|Type|Required|Description ----|---|---|---|---| -query|query|string|false|Specifiy which fields to retrieve, filters, limits, etc. For example, `?fields=type,properties,hash&type=Circle` -body|body|array[string]|true|An object that holds the keys you want to modify or add. + +

Parameters

+ + +|Parameter|In|Type|Required|Description| +|---|---|---|---|---| +|query|query|string|false|Specifiy which fields to retrieve, filters, limits, etc. For example, `?fields=type,properties,hash&type=Circle`| +|body|body|array[string]|true|An object that holds the keys you want to modify or add.| > Example responses + ```json { "success": true, "message": "string", - "resource": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - }, - "resources": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ] + "resource": {}, + "resources": {} } ``` ```json @@ -7985,22 +7336,2075 @@ body|body|array[string]|true|An object that holds the keys you want to modify or "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } ``` -### Responses -Status|Meaning|Description|Schema ----|---|---|---| -200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseObject](#schemaresponseobject) -400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase) + +

Responses

+ + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|All good!|[ResponseObject](#schemaresponseobject)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Fail whale.|[ResponseBase](#schemaresponsebase)| + +# Schemas + + +

ResourceBase

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false +} +``` + + +### Properties + + +|Name|Type|Required|Description| +|---|---|---|---| +|_id|string|false|No description| +|owner|string|false|No description| +|private|boolean|false|No description| +|anonymousComments|boolean|false|No description| +|canRead|[string]|false|No description| +|canWrite|[string]|false|No description| +|comments|[string]|false|An array of comment ids.| +|deleted|boolean|false|Controls archival status - does not actually delete anything| + + +

User

+ + + + + +```json +{ + "_id": "string", + "role": "string", + "avatar": "string", + "apitoken": "string", + "token": "string", + "email": "string", + "name": "string", + "surname": "string", + "company": "string", + "logins": [] +} +``` + + +### Properties + + +|Name|Type|Required|Description| +|---|---|---|---| +|_id|string|false|Database uuid.| +|role|string|false|User's role. Defaults to "user".| +|avatar|string|false|We will need profile pics at one point.| +|apitoken|string|false|a signed jwt token that expires in 1 year.| +|token|string|false|a signed jwt token that expires in 1 day.| +|email|string|false|user's email| +|name|string|false|User's given name| +|surname|string|false|User's family name| +|company|string|false|Users's company| +|logins|[object]|false|an array storing each time the user logged in.| +|» date|string|false|No description| + + +

AppClient

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "role": "string", + "documentGuid": "string", + "documentName": "string", + "documentType": "string", + "documentLocation": "string", + "streamId": "string", + "online": true +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResourceBase](#schemaresourcebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» _id|string|false|Database uuid.| +|» role|string|false|Either Sender, Receiver or anything else you can think of.| +|» documentGuid|string|false|No description| +|» documentName|string|false|No description| +|» documentType|string|false|No description| +|» documentLocation|string|false|No description| +|» streamId|string|false|The streamId that this client is attached to.| +|» online|boolean|false|Is it accessible from the server or not?| + + +

Project

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "name": "string", + "number": "string", + "users": [], + "streams": [], + "subProjects": [] +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResourceBase](#schemaresourcebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» _id|string|false|No description| +|» name|string|false|No description| +|» number|string|false|No description| +|» users|[string]|false|No description| +|» streams|[string]|false|No description| +|» subProjects|[string]|false|No description| + + +

Comment

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "resource": {}, + "text": "string", + "assignedTo": [], + "closed": true, + "labels": [], + "view": {}, + "screenshot": "string" +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResourceBase](#schemaresourcebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|object|false|No description| +|»» resourceType|string|false|No description| +|»» resourceId|string|false|No description| +|» text|string|false|No description| +|» assignedTo|[string]|false|No description| +|» closed|boolean|false|No description| +|» labels|[string]|false|No description| +|» view|object|false|No description| +|» screenshot|string|false|No description| + + +

SpeckleStream

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "streamId": "string", + "name": "string", + "objects": [], + "layers": [], + "baseProperties": {}, + "globalMeasures": {}, + "isComputedResult": false, + "viewerLayers": [], + "parent": "string", + "children": [], + "ancestors": [] +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResourceBase](#schemaresourcebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» streamId|string|false|The stream's short id.| +|» name|string|false|The data stream's name| +|» objects|[[SpeckleObject](#schemaspeckleobject)]|false|An array of SpeckleObject ids.| +|» layers|[[Layer](#schemalayer)]|false|An array of speckle layers.| +|» baseProperties|object|false|Units, tolerances, etc.| +|» globalMeasures|object|false|Any performance measures can go in here.| +|» isComputedResult|boolean|false|No description| +|» viewerLayers|[object]|false|No description| +|» parent|string|false|If this stream is a child, the parent's streamId.| +|» children|[string]|false|An array of the streamId of any children of this stream.| +|» ancestors|[string]|false|If resulting from a merge, the streams that this one was born out of.| + + +

Layer

+ + + + + +```json +{ + "name": "string", + "guid": "string", + "orderIndex": 0, + "startIndex": 0, + "objectCount": 0, + "topology": "string", + "properties": {} +} +``` + + +### Properties + + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|false|Layer's name| +|guid|string|false|Layer's guid (must be unique)| +|orderIndex|integer|false|Describes this layer's position in the list of layers.| +|startIndex|number|false|The index of the first object relative to the stream's objects array| +|objectCount|number|false|How many objects does this layer have.| +|topology|string|false|String describing the nested tree structure (GH centric).| +|properties|[LayerProperties](#schemalayerproperties)|false|No description| + + +

LayerProperties

+ + + + + +```json +{ + "color": {}, + "visible": true, + "pointsize": 0, + "linewidth": 0, + "shininess": 0, + "smooth": true, + "showEdges": true, + "wireframe": true +} +``` + + +### Properties + + +|Name|Type|Required|Description| +|---|---|---|---| +|color|object|false|No description| +|» a|number|false|alpha value| +|» hex|string|false|hex color value| +|visible|boolean|false|toggles layer visibility.| +|pointsize|number|false|defines point size in threejs| +|linewidth|number|false|defines line thickness in threejs| +|shininess|number|false|says it all. speckle is superficial.| +|smooth|boolean|false|smooth shading toggle| +|showEdges|boolean|false|display edges or not yo.| +|wireframe|boolean|false|i'm bored.| + + +

ResponseBase

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": [] +} +``` + + +### Properties + + +|Name|Type|Required|Description| +|---|---|---|---| +|success|boolean|false|Besides the http status code, this tells you whether the call succeeded or not.| +|message|string|false|Either an error or a confirmation.| +|resource|object|false|Returned resource (if querying by id)| +|resources|[object]|false|Returned resources array (if it's a bulk query)| + + +

ResponseUser

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|[User](#schemauser)|false|No description| +|» resources|[[User](#schemauser)]|false|No description| + + +

ResponseClient

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|[AppClient](#schemaappclient)|false|No description| +|» resources|[[AppClient](#schemaappclient)]|false|No description| + + +

ResponseProject

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|[Project](#schemaproject)|false|No description| +|» resources|[[Project](#schemaproject)]|false|No description| + + +

ResponseComment

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|[Comment](#schemacomment)|false|No description| +|» resources|[[Comment](#schemacomment)]|false|No description| + + +

ResponseStream

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|[SpeckleStream](#schemaspecklestream)|false|No description| +|» resources|[[SpeckleStream](#schemaspecklestream)]|false|No description| + + +

ResponseObject

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» resource|[SpeckleObject](#schemaspeckleobject)|false|No description| +|» resources|[[SpeckleObject](#schemaspeckleobject)]|false|No description| + + +

ResponseStreamClone

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": [], + "clone": {}, + "parent": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» clone|[SpeckleStream](#schemaspecklestream)|false|No description| +|» parent|[SpeckleStream](#schemaspecklestream)|false|No description| + + +

ResponseStreamDiff

+ + + + + +```json +{ + "success": true, + "message": "string", + "resource": {}, + "resources": [], + "objects": {}, + "layers": {} +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResponseBase](#schemaresponsebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» objects|object|false|No description| +|»» common|[string]|false|No description| +|»» inA|[string]|false|No description| +|»» inB|[string]|false|No description| +|» layers|object|false|No description| +|»» common|[[Layer](#schemalayer)]|false|No description| +|»» inA|[[Layer](#schemalayer)]|false|No description| +|»» inB|[[Layer](#schemalayer)]|false|No description| + + +

SpeckleObject

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Null", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [] +} +``` + + +### Properties + + +*allOf* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[ResourceBase](#schemaresourcebase)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|string|false|Object's subtype| +|» hash|string|false|Object's unique hash.| +|» geometryHash|string|false|Object's geometry hash| +|» applicationId|string|false|The id/guid that the origin application identifies this object by.| +|» properties|object|false|The extra properties field of a speckle object.| +|» parent|string|false|If this object is a child, the parent's objectid.| +|» children|[string]|false|An array of the ids of any children of this object.| +|» ancestors|[string]|false|If resulting from a merge, the objects that this one was born out of.| +|» transform|[number]|false|No description| + + +#### Enumerated Values + + +|Property|Value| +|---|---| +|type|Null| +|type|Abstract| +|type|Placeholder| +|type|Boolean| +|type|Number| +|type|String| +|type|Interval| +|type|Interval2d| +|type|Point| +|type|Vector| +|type|Plane| +|type|Line| +|type|Rectangle| +|type|Circle| +|type|Arc| +|type|Ellipse| +|type|Polycurve| +|type|Box| +|type|Polyline| +|type|Curve| +|type|Mesh| +|type|Brep| +|type|Annotation| +|type|Extrusion| + + +

SpeckleAbstract

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Abstract", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "_type": "string", + "assembly": "string" +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» _type|string|false|the original type of the object| +|» assembly|string|false|the original assembly of this object| + + +

SpecklePlaceholder

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Abstract", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [] +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| + + +

SpeckleBoolean

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Boolean", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "value": true +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» value|boolean|false|No description| + + +

SpeckleNumber

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Number", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "value": 0 +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» value|number|false|A number. Can be float, double, etc.| + + +

SpeckleString

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "String", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "value": "string" +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» value|string|false|A string.| + + +

SpeckleInterval

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Interval", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "start": 0, + "end": 0 +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» start|number|false|No description| +|» end|number|false|No description| + + +

SpeckleInterval2d

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Null", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "U": {}, + "V": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» U|[SpeckleInterval](#schemaspeckleinterval)|false|No description| +|» V|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpecklePoint

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Point", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "value": [] +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» value|[number]|false|An array containing the X, Y and Z coords of the point.| + + +

SpeckleVector

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Vector", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "value": [] +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» value|[number]|false|An array containing the X, Y and Z coords of the vector.| + + +

SpecklePlane

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Plane", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "origin": {}, + "normal": {}, + "xdir": {}, + "ydir": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» origin|[SpecklePoint](#schemaspecklepoint)|false|No description| +|» normal|[SpeckleVector](#schemaspecklevector)|false|No description| +|» xdir|[SpeckleVector](#schemaspecklevector)|false|No description| +|» ydir|[SpeckleVector](#schemaspecklevector)|false|No description| + + +

SpeckleCircle

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Circle", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "radius": 0, + "center": {}, + "normal": {}, + "domain": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» radius|number|false|No description| +|» center|[SpecklePoint](#schemaspecklepoint)|false|No description| +|» normal|[SpeckleVector](#schemaspecklevector)|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpeckleArc

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Arc", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "radius": 0, + "startAngle": 0, + "endAngle": 0, + "angleRadians": 0, + "plane": {}, + "domain": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» radius|number|false|No description| +|» startAngle|number|false|No description| +|» endAngle|number|false|No description| +|» angleRadians|number|false|No description| +|» plane|[SpecklePlane](#schemaspeckleplane)|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpeckleEllipse

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Ellipse", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "firstRadius": 0, + "secondRadius": 0, + "plane": {}, + "domain": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» firstRadius|number|false|No description| +|» secondRadius|number|false|No description| +|» plane|[SpecklePlane](#schemaspeckleplane)|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpecklePolycurve

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Polycurve", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "segments": [], + "domain": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» segments|[[SpeckleObject](#schemaspeckleobject)]|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpeckleBox

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Box", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "basePlane": {}, + "xSize": {}, + "ySize": {}, + "zSize": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» basePlane|[SpecklePlane](#schemaspeckleplane)|false|No description| +|» xSize|[SpeckleInterval](#schemaspeckleinterval)|false|No description| +|» ySize|[SpeckleInterval](#schemaspeckleinterval)|false|No description| +|» zSize|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpeckleLine

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Line", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "value": [], + "domain": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» value|[number]|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpecklePolyline

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Polyline", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "closed": true, + "value": [], + "domain": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» closed|boolean|false|No description| +|» value|[number]|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| + + +

SpeckleCurve

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Curve", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "degree": 0, + "periodic": 0, + "rational": 0, + "points": [], + "weights": [], + "knots": [], + "domain": {}, + "displayValue": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» degree|number|false|No description| +|» periodic|number|false|No description| +|» rational|number|false|No description| +|» points|[number]|false|No description| +|» weights|[number]|false|No description| +|» knots|[number]|false|No description| +|» domain|[SpeckleInterval](#schemaspeckleinterval)|false|No description| +|» displayValue|[SpecklePolyline](#schemaspecklepolyline)|false|No description| + + +

SpeckleMesh

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Mesh", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "vertices": [], + "faces": [], + "colors": [], + "textureCoordinates": [] +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» vertices|[number]|false|The mesh's vertices array, in a flat array (ie, `x1, y1, z1, x2, y2, ...`)| +|» faces|[number]|false|The faces array.| +|» colors|[number]|false|If any, the colours per vertex.| +|» textureCoordinates|[number]|false|The faces array.| + + +

SpeckleBrep

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Brep", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "rawData": {}, + "provenance": "string", + "displayValue": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» type|any|false|No description| +|» rawData|object|false|The brep's raw (serialisation) data.| +|» provenance|string|false|A short prefix of where the base64 comes from.| +|» displayValue|[SpeckleMesh](#schemaspecklemesh)|false|No description| + + +

SpeckleExtrusion

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Null", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "capped": true, + "profile": {}, + "pathStart": {}, + "pathEnd": {}, + "pathCurve": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» capped|boolean|false|No description| +|» profile|[SpeckleObject](#schemaspeckleobject)|false|No description| +|» pathStart|[SpecklePoint](#schemaspecklepoint)|false|No description| +|» pathEnd|[SpecklePoint](#schemaspecklepoint)|false|No description| +|» pathCurve|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +

SpeckleAnnotation

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Null", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "text": "string", + "textHeight": 0, + "fontName": "string", + "bold": true, + "italic": true, + "location": {}, + "plane": {} +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» text|string|false|No description| +|» textHeight|number|false|No description| +|» fontName|string|false|No description| +|» bold|boolean|false|No description| +|» italic|boolean|false|No description| +|» location|[SpecklePoint](#schemaspecklepoint)|false|No description| +|» plane|[SpecklePlane](#schemaspeckleplane)|false|No description| + + +

SpeckleBlock

+ + + + + +```json +{ + "_id": "string", + "owner": "string", + "private": true, + "anonymousComments": true, + "canRead": [], + "canWrite": [], + "comments": [], + "deleted": false, + "type": "Null", + "hash": "hash", + "geometryHash": "Type.hash", + "applicationId": "GUID", + "properties": {}, + "parent": "string", + "children": [], + "ancestors": [], + "transform": [], + "name": "string", + "description": "string", + "objects": [] +} +``` + + +### Properties + + +*allOf - discriminator: SpeckleObject.type* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[SpeckleObject](#schemaspeckleobject)|false|No description| + + +*and* + + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|false|No description| +|» name|string|false|No description| +|» description|string|false|No description| +|» objects|[[SpeckleObject](#schemaspeckleobject)]|false|No description| + diff --git a/SpeckleV1OpenApiSpecs.yaml b/SpeckleV1OpenApiSpecs.yaml index 8bb5842..37e1ad2 100644 --- a/SpeckleV1OpenApiSpecs.yaml +++ b/SpeckleV1OpenApiSpecs.yaml @@ -1415,6 +1415,8 @@ definitions: $ref: '#/definitions/SpecklePoint' normal: $ref: '#/definitions/SpeckleVector' + domain: + $ref: '#/definitions/SpeckleInterval' SpeckleArc: allOf: @@ -1433,6 +1435,8 @@ definitions: type: number plane: $ref: '#/definitions/SpecklePlane' + domain: + $ref: '#/definitions/SpeckleInterval' SpeckleEllipse: allOf: @@ -1447,6 +1451,8 @@ definitions: type: number plane: $ref: '#/definitions/SpecklePlane' + domain: + $ref: '#/definitions/SpeckleInterval' SpecklePolycurve: allOf: @@ -1459,6 +1465,8 @@ definitions: type: array items: $ref: '#/definitions/SpeckleObject' + domain: + $ref: '#/definitions/SpeckleInterval' SpeckleBox: allOf: @@ -1487,6 +1495,8 @@ definitions: type: array items: type: number + domain: + $ref: '#/definitions/SpeckleInterval' SpecklePolyline: allOf: @@ -1501,6 +1511,8 @@ definitions: type: array items: type: number + domain: + $ref: '#/definitions/SpeckleInterval' SpeckleCurve: allOf: diff --git a/docs-old/index.html b/docs-old/index.html deleted file mode 100644 index 22c513d..0000000 --- a/docs-old/index.html +++ /dev/null @@ -1,18104 +0,0 @@ - - - - - - - - - SpeckleCore v0.0.3 - - - - - - - - - - - - - - - NAV - Navigation - - -
- - -
- - - curl - - - - JavaScript - - - - Node.JS - - - - Python - - - - Ruby - - - - Java - - -
- - - - - -
- -
- - - -
-
-
-
-

Speckle Works API

-

Introduction

-
-

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

-
-

Documentation & specifications for the Speckle Server & Speckle Objects. It does not cover the realtime communication layer (websockets).

-

https://speckle.works

- -

REST Api Operations

-

This section describes all the available operations that the speckle server can perform, revolving around a simple Accounts system, Clients (keeping track of all the receivers and senders), Streams, Stream Layers, Stream Objects and Objects.

-

While it is recommended you do not create objects outside a stream, you can still do it.

-

Schema Defintions

-

This section describes the basic building blocks that Speckle works with. It also contains an extensive list of Payloads and Responses which are less interesting, but a through look at the SpeckleObject and its children is needed, especially if you're looking into implementing your own application specific converter.

-

Websockets & Realtime Comms Between Clients

- -

In order to be able to send and receive messages, you will need a Client Id (check the Clients section).

-

Broadcasting

-

When a client broadcasts, its message will be relayed to all the other clients that are online and 'listen' to the same stream.

-

For example, this is useful when a sender client updates the stream: he will subsequently broadcast a message that informs all other listening clients.

-

Direct messages

-

These are useful for clients to communicate in between themselves. For example, let's say we have Grasshopper defintion controller client. Once he computes a job, he then sends a message informing the other client with where he can retrieve the results from.

-

Permissions

- -

Currently, permissions operate on a very basic level. Streams are by default public, ie anyone can access them. Streams can be marked as private, in which case only the owner of the stream will be able to read or view them.

-

Another user can be added to the 'shared with' array of the stream, in which case permission to read & write are also granted.

-

Authentication

- -

Accounts

-

Register, Login and Get/Set user profiles.

-

UserRegister

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/accounts/register \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/accounts/register HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/accounts/register',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "email": "string",
-  "password": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string"
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/accounts/register',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/accounts/register',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/accounts/register', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/accounts/register");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /accounts/register

-

UserRegister

-

Registers a new user.

-
-

Body parameter

-
-
{
-  "email": "string",
-  "password": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string"
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyPayloadAccountRegistertrueNo description
» emailbodystringtrueNo description
» passwordbodystringtrueNo description
» namebodystringfalseNo description
» surnamebodystringfalseNo description
» companybodystringfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "token": "string",
-  "apiToken": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKNew user successfully registered.ResponseAccountRegister
400Bad RequestFailed to register a new user.ResponseBase
- -

UserLogin

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/accounts/login \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/accounts/login HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/accounts/login',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "email": "string",
-  "password": "string"
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/accounts/login',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/accounts/login',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/accounts/login', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/accounts/login");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /accounts/login

-

UserLogin

-

Login and get jwt token.

-
-

Body parameter

-
-
{
-  "email": "string",
-  "password": "string"
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyPayloadAccountLogintrueNo description
» emailbodystringtrueNo description
» passwordbodystringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "token": "string",
-  "apiToken": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseAccountLogin
400Bad RequestFail whale.ResponseBase
- -

UserStreamsGet

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/accounts/streams \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/accounts/streams HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/accounts/streams',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/accounts/streams',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/accounts/streams',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/accounts/streams', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/accounts/streams");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /accounts/streams

-

UserStreamsGet

-

Gets all the streams for a user (identified via the authorization token, so if that is s not present, it will not work).

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "streams": [
-    {
-      "_id": "string",
-      "streamId": "string",
-      "owner": "string",
-      "private": false,
-      "name": "Anonymous Stream",
-      "objects": [
-        {
-          "type": "Boolean",
-          "hash": "hash",
-          "geometryHash": "Type.hash",
-          "applicationId": "GUID",
-          "properties": {}
-        }
-      ],
-      "layers": [
-        {
-          "name": "string",
-          "guid": "string",
-          "orderIndex": 0,
-          "startIndex": 0,
-          "objectCount": 0,
-          "topology": "0;0;0;0-2 0;0;0;1-2",
-          "properties": {
-            "color": {
-              "a": 1,
-              "hex": "#d4d4d4"
-            },
-            "visible": true,
-            "pointsize": 0,
-            "linewidth": 0,
-            "shininess": 0,
-            "smooth": true,
-            "showEdges": true,
-            "wireframe": true
-          }
-        }
-      ],
-      "parent": "string",
-      "children": [
-        "string"
-      ]
-    }
-  ],
-  "sharedStreams": [
-    {
-      "_id": "string",
-      "streamId": "string",
-      "owner": "string",
-      "private": false,
-      "name": "Anonymous Stream",
-      "objects": [
-        {
-          "type": "Boolean",
-          "hash": "hash",
-          "geometryHash": "Type.hash",
-          "applicationId": "GUID",
-          "properties": {}
-        }
-      ],
-      "layers": [
-        {
-          "name": "string",
-          "guid": "string",
-          "orderIndex": 0,
-          "startIndex": 0,
-          "objectCount": 0,
-          "topology": "0;0;0;0-2 0;0;0;1-2",
-          "properties": {
-            "color": {
-              "a": 1,
-              "hex": "#d4d4d4"
-            },
-            "visible": true,
-            "pointsize": 0,
-            "linewidth": 0,
-            "shininess": 0,
-            "smooth": true,
-            "showEdges": true,
-            "wireframe": true
-          }
-        }
-      ],
-      "parent": "string",
-      "children": [
-        "string"
-      ]
-    }
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseAccountStreams
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnautorised whale.ResponseBase
- -

UserClientsGet

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/accounts/clients \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/accounts/clients HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/accounts/clients',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/accounts/clients',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/accounts/clients',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/accounts/clients', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/accounts/clients");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /accounts/clients

-

UserClientsGet

-

Gets all the clients for a user (identified via the authorization token, so if that is s not present, it will not work).

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "clients": [
-    {
-      "_id": "string",
-      "role": "string",
-      "documentGuid": "string",
-      "documentName": "string",
-      "documentType": "string",
-      "streamId": "string",
-      "owner": "string",
-      "online": true
-    }
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseAccountClients
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

UserGetProfile

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/accounts/profile \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/accounts/profile HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/accounts/profile',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/accounts/profile',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/accounts/profile',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/accounts/profile', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/accounts/profile");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /accounts/profile

-

UserGetProfile

-

Gets the user's profile.

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "user": {
-    "_id": "string",
-    "apitoken": "string",
-    "email": "string",
-    "name": "string",
-    "surname": "string",
-    "company": "string",
-    "logins": [
-      {
-        "date": "string"
-      }
-    ]
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseAccountProfile
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

UserUpdate

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/accounts/profile \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/accounts/profile HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/accounts/profile',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "email": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string"
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/accounts/profile',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/accounts/profile',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/accounts/profile', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/accounts/profile");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /accounts/profile

-

UserUpdate

-

TODO. Should update user profile with new information.

-
-

Body parameter

-
-
{
-  "email": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string"
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyPayloadAccountUpdatetrueNo description
» emailbodystringfalseNo description
» namebodystringfalseNo description
» surnamebodystringfalseNo description
» companybodystringfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKAll good.ResponseBase
400Bad RequestFail whale.ResponseBase
- -

Clients (UserAppClients)

-

Create, get and update application clients. Without one you can't send/receive/broadcast websocket messages.

-

ClientCreate

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/clients \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/clients HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/clients',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "client": {
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string"
-  }
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/clients',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/clients',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/clients', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/clients");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /clients

-

ClientCreate

-

Creates a new client and returns your clientId. If not authorised, you get a temporary clientId.

-
-

Body parameter

-
-
{
-  "client": {
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string"
-  }
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyPayloadClientCreatetrueNo description
» clientbodyobjectfalseNo description
»» rolebodystringfalseNo description
»» documentGuidbodystringfalseNo description
»» documentNamebodystringfalseNo description
»» documentTypebodystringfalseNo description
»» streamIdbodystringfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "clientId": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccessfully creates a new client.ResponseClientCreate
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ClientGet

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/clients/{clientId} \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/clients/{clientId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/clients/{clientId}',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/clients/{clientId}',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/clients/{clientId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/clients/{clientId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/clients/{clientId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /clients/{clientId}

-

ClientGet

-

Gets a client.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
clientIdpathstringtruethe client's id.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "client": {
-    "_id": "string",
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string",
-    "owner": "string",
-    "online": true
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKClient got.ResponseClientGet
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ClientUpdate

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/clients/{clientId} \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/clients/{clientId} HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/clients/{clientId}',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "client": {
-    "_id": "string",
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string",
-    "owner": "string",
-    "online": true
-  }
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/clients/{clientId}',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/clients/{clientId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/clients/{clientId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/clients/{clientId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /clients/{clientId}

-

ClientUpdate

-

Updates a client.

-
-

Body parameter

-
-
{
-  "client": {
-    "_id": "string",
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string",
-    "owner": "string",
-    "online": true
-  }
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
clientIdpathstringtruethe client's id.
bodybodyPayloadClientUpdatetrueNo description
» clientbodySpeckleClientfalseA representation of the manifestation of a Speckle Client. Whenever an instance of a client is born in any software, it should get its matching identity on the server. When deserialising itself, it should call back to the database and set itself as online. Its uuid sould server as sessionId for the websocket client.
»» _idbodystringfalseDatabase uuid.
»» rolebodystringfalseSender, Receiver, Mixed (for both), Parametric Sender if it can operate on parameters inside a defintion, or whatever else we can think of.
»» documentGuidbodystringfalseNo description
»» documentNamebodystringfalseNo description
»» documentTypebodystringfalseNo description
»» streamIdbodystringfalseThe streamId that this clients 'listens to'.
»» ownerbodystringfalseNo description
»» onlinebodybooleanfalseIs it accessible from the server or not?
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKAll good.ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ClientDelete

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/clients/{clientId} \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/clients/{clientId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/clients/{clientId}',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/clients/{clientId}',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/clients/{clientId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/clients/{clientId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/clients/{clientId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /clients/{clientId}

-

ClientDelete

-

Marks a client for deletion.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
clientIdpathstringtruethe client's id.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKComputer is benevolent.ResponseBase
400Bad RequestComputer is confused.ResponseBase
401UnauthorizedComputer says you're not authorised.ResponseBase
404Not FoundComputer can't find shit.ResponseBase
- -

Streams

-

Create, get and update streams.

-

StreamCreate

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/streams \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/streams HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams',
-{
-  method: 'POST',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/streams',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/streams', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /streams

-

StreamCreate

-

Creates a new stream.

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "stream": {
-    "_id": "string",
-    "streamId": "string",
-    "owner": "string",
-    "private": false,
-    "name": "Anonymous Stream",
-    "objects": [
-      {
-        "type": "Boolean",
-        "hash": "hash",
-        "geometryHash": "Type.hash",
-        "applicationId": "GUID",
-        "properties": {}
-      }
-    ],
-    "layers": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "parent": "string",
-    "children": [
-      "string"
-    ]
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKInitialises a stream in the db. You get back the 'streamId'.ResponseStreamCreate
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

StreamGet

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId} \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}

-

StreamGet

-

Will return the specified stream. If no Authorization header is provided and the stream is private you will get a 401. It populates the objects array fully. If you want a light version of the stream, query /api/streams/{streamId}/meta.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueThe stream's id.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "stream": {
-    "_id": "string",
-    "streamId": "string",
-    "owner": "string",
-    "private": false,
-    "name": "Anonymous Stream",
-    "objects": [
-      {
-        "type": "Boolean",
-        "hash": "hash",
-        "geometryHash": "Type.hash",
-        "applicationId": "GUID",
-        "properties": {}
-      }
-    ],
-    "layers": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "parent": "string",
-    "children": [
-      "string"
-    ]
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccess whale.ResponseStreamGet
401UnauthorizedFail whale.ResponseBase
404Not FoundStream not found.ResponseBase
- -

StreamUpdate

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/streams/{streamId} \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/streams/{streamId} HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ],
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ],
-  "name": "string"
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/streams/{streamId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/streams/{streamId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /streams/{streamId}

-

StreamUpdate

-

Updates the stream.

-
-

Body parameter

-
-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ],
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ],
-  "name": "string"
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueThe stream's id.
bodybodyPayloadStreamUpdatetrueNo description
» namebodystringfalseNo description
» objectsbody[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type.
»» typebodystringtrueobject's type
»» hashbodystringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashbodystringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdbodystringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesbodyobjectfalseAnything goes in here, including other (speckle) objects.
»» typebodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
» layersbody[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namebodystringfalseLayer's name
»» guidbodystringfalseLayer's guid (must be unique)
»» orderIndexbodyintegerfalseDescribes this layer's position in the list of layers.
»» startIndexbodynumberfalseThe index of the first object relative to the stream's objects array
»» objectCountbodynumberfalseHow many objects does this layer have.
»» topologybodystringfalseString describing the nested tree structure (Gh centric).
»» propertiesbodySpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorbodyobjectfalseNo description
»»»» abodynumberfalsealpha value
»»»» hexbodystringfalsehex color value
»»» visiblebodybooleanfalsetoggles layer visibility.
»»» pointsizebodynumberfalsedefines point size in threejs
»»» linewidthbodynumberfalsedefines line thickness in threejs
»»» shininessbodynumberfalsesays it all. speckle is superficial.
»»» smoothbodybooleanfalsesmooth shading toggle
»»» showEdgesbodybooleanfalsedisplay edges or not yo.
»»» wireframebodybooleanfalsei'm bored.
»» propertiesbodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
»» x-old-refbodyUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-
» objects
-

Base class that is inherited by all other Speckle objects. The only required value is its type.

-

Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKOn successResponseStreamUpdate
401UnauthorizedStatus 401ResponseBase
404Not FoundStatus 404ResponseBase
- -

StreamDelete

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/streams/{streamId} \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/streams/{streamId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/streams/{streamId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/streams/{streamId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /streams/{streamId}

-

StreamDelete

-

Flags stream for deletion.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueThe stream's id.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccess whale.ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedFail whale.ResponseBase
- -

StreamGetName

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId}/name \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId}/name HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/name',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/name',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}/name',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}/name', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/name");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}/name

-

StreamGetName

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "name": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseStreamNameGet
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

StreamUpdateName

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/streams/{streamId}/name \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/streams/{streamId}/name HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/name',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "name": "string"
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/name',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/streams/{streamId}/name',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/streams/{streamId}/name', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/name");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /streams/{streamId}/name

-

StreamUpdateName

-
-

Body parameter

-
-
{
-  "name": "string"
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
bodybodyPayloadStreamNameUpdatetrueNo description
» namebodystringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

Stream Layers Collection

-

Modify the stream's layer collection.

-

GetLayers

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId}/layers \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId}/layers HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}/layers',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}/layers', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}/layers

-

GetLayers

-

Retrieves the stream's layers.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseStreamLayersGet
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

AddLayers

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/streams/{streamId}/layers \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/streams/{streamId}/layers HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "layers": [
-    {}
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/streams/{streamId}/layers',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/streams/{streamId}/layers', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /streams/{streamId}/layers

-

AddLayers

-

Adds the provided layers to the stream.

-
-

Body parameter

-
-
{
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
bodybodyAddLayersBodytrueNo description
» layersbody[SpeckleLayer]falseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ReplaceLayers

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/streams/{streamId}/layers \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/streams/{streamId}/layers HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/streams/{streamId}/layers',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/streams/{streamId}/layers', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /streams/{streamId}/layers

-

ReplaceLayers

-

Updates stream layers.

-
-

Body parameter

-
-
{
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
bodybodyAddLayersBodytrueNo description
» layersbody[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namebodystringfalseLayer's name
»» guidbodystringfalseLayer's guid (must be unique)
»» orderIndexbodyintegerfalseDescribes this layer's position in the list of layers.
»» startIndexbodynumberfalseThe index of the first object relative to the stream's objects array
»» objectCountbodynumberfalseHow many objects does this layer have.
»» topologybodystringfalseString describing the nested tree structure (Gh centric).
»» propertiesbodySpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorbodyobjectfalseNo description
»»»» abodynumberfalsealpha value
»»»» hexbodystringfalsehex color value
»»» visiblebodybooleanfalsetoggles layer visibility.
»»» pointsizebodynumberfalsedefines point size in threejs
»»» linewidthbodynumberfalsedefines line thickness in threejs
»»» shininessbodynumberfalsesays it all. speckle is superficial.
»»» smoothbodybooleanfalsesmooth shading toggle
»»» showEdgesbodybooleanfalsedisplay edges or not yo.
»»» wireframebodybooleanfalsei'm bored.
»» typebodyUnknownfalseNo description
»» propertiesbodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
»» x-old-refbodyUnknownfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

MergeLayers

-
-

Code samples

-
-
# You can also use wget
-curl -X PATCH http://localhost:8080/api/streams/{streamId}/layers \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PATCH http://localhost:8080/api/streams/{streamId}/layers HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers',
-  method: 'patch',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers',
-{
-  method: 'PATCH',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.patch 'http://localhost:8080/api/streams/{streamId}/layers',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.patch('http://localhost:8080/api/streams/{streamId}/layers', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PATCH /streams/{streamId}/layers

-

MergeLayers

-

Merges the stream layers. Gently. And with lots of tender care.

-
-

Body parameter

-
-
{
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
bodybodyAddLayersBodytrueNo description
» layersbody[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namebodystringfalseLayer's name
»» guidbodystringfalseLayer's guid (must be unique)
»» orderIndexbodyintegerfalseDescribes this layer's position in the list of layers.
»» startIndexbodynumberfalseThe index of the first object relative to the stream's objects array
»» objectCountbodynumberfalseHow many objects does this layer have.
»» topologybodystringfalseString describing the nested tree structure (Gh centric).
»» propertiesbodySpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorbodyobjectfalseNo description
»»»» abodynumberfalsealpha value
»»»» hexbodystringfalsehex color value
»»» visiblebodybooleanfalsetoggles layer visibility.
»»» pointsizebodynumberfalsedefines point size in threejs
»»» linewidthbodynumberfalsedefines line thickness in threejs
»»» shininessbodynumberfalsesays it all. speckle is superficial.
»»» smoothbodybooleanfalsesmooth shading toggle
»»» showEdgesbodybooleanfalsedisplay edges or not yo.
»»» wireframebodybooleanfalsei'm bored.
»» typebodyUnknownfalseNo description
»» propertiesbodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
»» x-old-refbodyUnknownfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

DeleteLayers

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/streams/{streamId}/layers \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/streams/{streamId}/layers HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/streams/{streamId}/layers',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/streams/{streamId}/layers', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /streams/{streamId}/layers

-

DeleteLayers

-

Purges the stream's layer list.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

Stream Layer

-

Modify a stream's specific layer.

-

GetSingleLayer

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId}/layers/{layerId} \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId}/layers/{layerId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}/layers/{layerId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}/layers/{layerId}

-

GetSingleLayer

-

Retrieves a stream layer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "layer": {
-    "name": "string",
-    "guid": "string",
-    "orderIndex": 0,
-    "startIndex": 0,
-    "objectCount": 0,
-    "topology": "0;0;0;0-2 0;0;0;1-2",
-    "properties": {
-      "color": {
-        "a": 1,
-        "hex": "#d4d4d4"
-      },
-      "visible": true,
-      "pointsize": 0,
-      "linewidth": 0,
-      "shininess": 0,
-      "smooth": true,
-      "showEdges": true,
-      "wireframe": true
-    }
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccessful whale.ResponseSingleLayer
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

ReplaceSingleLayer

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/streams/{streamId}/layers/{layerId} \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/streams/{streamId}/layers/{layerId} HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "layer": {}
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/streams/{streamId}/layers/{layerId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /streams/{streamId}/layers/{layerId}

-

ReplaceSingleLayer

-

Overwrites a stream layer.

-
-

Body parameter

-
-
{
-  "layer": {
-    "name": "string",
-    "guid": "string",
-    "orderIndex": 0,
-    "startIndex": 0,
-    "objectCount": 0,
-    "topology": "0;0;0;0-2 0;0;0;1-2",
-    "properties": {
-      "color": {
-        "a": 1,
-        "hex": "#d4d4d4"
-      },
-      "visible": true,
-      "pointsize": 0,
-      "linewidth": 0,
-      "shininess": 0,
-      "smooth": true,
-      "showEdges": true,
-      "wireframe": true
-    }
-  }
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
bodybodyReplaceSingleLayerBodytrueNo description
» layerbodySpeckleLayertrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccessful whale.ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

UpdateSingleLayer

-
-

Code samples

-
-
# You can also use wget
-curl -X PATCH http://localhost:8080/api/streams/{streamId}/layers/{layerId} \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PATCH http://localhost:8080/api/streams/{streamId}/layers/{layerId} HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  method: 'patch',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "layer": {
-    "name": "string",
-    "guid": "string",
-    "orderIndex": 0,
-    "startIndex": 0,
-    "objectCount": 0,
-    "topology": "0;0;0;0-2 0;0;0;1-2",
-    "properties": {
-      "color": {
-        "a": 1,
-        "hex": "#d4d4d4"
-      },
-      "visible": true,
-      "pointsize": 0,
-      "linewidth": 0,
-      "shininess": 0,
-      "smooth": true,
-      "showEdges": true,
-      "wireframe": true
-    }
-  }
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-{
-  method: 'PATCH',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.patch 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.patch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PATCH /streams/{streamId}/layers/{layerId}

-

UpdateSingleLayer

-

Updates a stream layer (merges keys).

-
-

Body parameter

-
-
{
-  "layer": {
-    "name": "string",
-    "guid": "string",
-    "orderIndex": 0,
-    "startIndex": 0,
-    "objectCount": 0,
-    "topology": "0;0;0;0-2 0;0;0;1-2",
-    "properties": {
-      "color": {
-        "a": 1,
-        "hex": "#d4d4d4"
-      },
-      "visible": true,
-      "pointsize": 0,
-      "linewidth": 0,
-      "shininess": 0,
-      "smooth": true,
-      "showEdges": true,
-      "wireframe": true
-    }
-  }
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
bodybodyReplaceSingleLayerBodytrueNo description
» layerbodySpeckleLayertrueDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namebodystringfalseLayer's name
»» guidbodystringfalseLayer's guid (must be unique)
»» orderIndexbodyintegerfalseDescribes this layer's position in the list of layers.
»» startIndexbodynumberfalseThe index of the first object relative to the stream's objects array
»» objectCountbodynumberfalseHow many objects does this layer have.
»» topologybodystringfalseString describing the nested tree structure (Gh centric).
»» propertiesbodySpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorbodyobjectfalseNo description
»»»» abodynumberfalsealpha value
»»»» hexbodystringfalsehex color value
»»» visiblebodybooleanfalsetoggles layer visibility.
»»» pointsizebodynumberfalsedefines point size in threejs
»»» linewidthbodynumberfalsedefines line thickness in threejs
»»» shininessbodynumberfalsesays it all. speckle is superficial.
»»» smoothbodybooleanfalsesmooth shading toggle
»»» showEdgesbodybooleanfalsedisplay edges or not yo.
»»» wireframebodybooleanfalsei'm bored.
»» typebodyUnknownfalseNo description
»» propertiesbodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
»» x-old-refbodyUnknownfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccessful whale.ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

DeleteSingleLayer

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/streams/{streamId}/layers/{layerId} \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/streams/{streamId}/layers/{layerId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/streams/{streamId}/layers/{layerId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /streams/{streamId}/layers/{layerId}

-

DeleteSingleLayer

-

Deletes a stream layer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccessful whale.ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

Layer Objects Collection

-

Add, remove objects to a specific layer in the stream.

-

GetLayerObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}/layers/{layerId}/objects

-

GetLayerObjects

-

Gets the objects from a stream's layer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
queryquerystringfalseFilter by field values, get or omit specific fields & sort.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccess whale.ResponseGetObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

AddLayerObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    {}
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /streams/{streamId}/layers/{layerId}/objects

-

AddLayerObjects

-

Adds objects to a stream's layer. Manages the layer collection's indexes (startIndex, objectCount).

-
-

Body parameter

-
-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
bodybodyAddLayerObjectsBodytrueNo description
» objectsbody[SpeckleObject]falseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccess whale.ResponsePostObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

ReplaceLayerObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /streams/{streamId}/layers/{layerId}/objects

-

ReplaceLayerObjects

-

Replaces the layer's objects.

-
-

Body parameter

-
-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
bodybodyAddLayerObjectsBodytrueNo description
» objectsbody[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type.
»» typebodystringtrueobject's type
»» hashbodystringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashbodystringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdbodystringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesbodyobjectfalseAnything goes in here, including other (speckle) objects.
»» typebodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-
» objects
-

Base class that is inherited by all other Speckle objects. The only required value is its type.

-

Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccess whale.ResponsePostObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

DeleteLayerObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    "string"
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-{
-  method: 'DELETE',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/layers/{layerId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /streams/{streamId}/layers/{layerId}/objects

-

DeleteLayerObjects

-

Deletes the layer's objects. If you provide a list of ids, it will delete just those.

-
-

Body parameter

-
-
{
-  "objects": [
-    "string"
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
layerIdpathstringtrueLayer guid or name. In case of name, the first layer of that name is selected.
bodybodyobjectfalseNo description
» objectsbody[string]falseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKSuccess whale.ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorized whale.ResponseBase
- -

Stream Objects Collection

-

Directly operate on the objects in the stream.

-

GetObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId}/objects \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId}/objects HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/objects',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/objects',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}/objects

-

GetObjects

-

Retrieves the stream's objects.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
queryquerystringfalseFilter by field values, get or omit specific fields & sort.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseStreamLayersGet
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

AddObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/streams/{streamId}/objects \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/streams/{streamId}/objects HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/objects',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    {}
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/objects',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/streams/{streamId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/streams/{streamId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /streams/{streamId}/objects

-

AddObjects

-

Adds the provided objects to the stream.

-
-

Body parameter

-
-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
bodybodyAddObjectsBodytrueNo description
» objectsbody[SpeckleObject]falseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponsePostObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ReplaceObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/streams/{streamId}/objects \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/streams/{streamId}/objects HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/objects',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/objects',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/streams/{streamId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/streams/{streamId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /streams/{streamId}/objects

-

ReplaceObjects

-

Updates stream layers.

-
-

Body parameter

-
-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
bodybodyAddObjectsBodytrueNo description
» objectsbody[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type.
»» typebodystringtrueobject's type
»» hashbodystringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashbodystringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdbodystringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesbodyobjectfalseAnything goes in here, including other (speckle) objects.
»» typebodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-
» objects
-

Base class that is inherited by all other Speckle objects. The only required value is its type.

-

Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponsePostObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

DeleteObjects

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/streams/{streamId}/objects \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/streams/{streamId}/objects HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/objects',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/objects',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/streams/{streamId}/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/streams/{streamId}/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /streams/{streamId}/objects

-

DeleteObjects

-

Purges the stream's object list.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ObjectDeleteFromStream

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/streams/{streamId}/objects/{objectId} \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/streams/{streamId}/objects/{objectId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/objects/{objectId}',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/objects/{objectId}',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/streams/{streamId}/objects/{objectId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/streams/{streamId}/objects/{objectId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/objects/{objectId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /streams/{streamId}/objects/{objectId}

-

ObjectDeleteFromStream

-

Deletes the specified object from the stream's object list.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueNo description
objectIdpathstringtrueThe objectId that you want to remove.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKWoot! Operation succeeded!ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

Special Ops

-

Extra lvl 5 magic spells.

-

StreamClone

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/streams/{streamId}/clone \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/streams/{streamId}/clone HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/clone',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/clone',
-{
-  method: 'POST',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/streams/{streamId}/clone',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/streams/{streamId}/clone', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/clone");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /streams/{streamId}/clone

-

StreamClone

-

Clones the current stream, saving the clone to the children array of the parent, and saving the parent to the parent field of the clone. This operation exists to enable various versioning/history operations for design variants.

-

For example, you can use it to save the current state as an option, similar to the traditional Save As > 0087QPT-FacadeVersionXX.3dm.

-

Alternatively, you can use it to branch off from the current state, by switching all future updates to the clone's stream.

-

Sky & UI's the limit.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueThe stream's id.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "clone": {
-    "_id": "string",
-    "streamId": "string"
-  },
-  "parent": {
-    "_id": "string",
-    "streamId": "string",
-    "children": [
-      "string"
-    ]
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseStreamClone
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

StreamDiff

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/streams/{streamId}/diff/{otherId} \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/streams/{streamId}/diff/{otherId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/streams/{streamId}/diff/{otherId}',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/streams/{streamId}/diff/{otherId}',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/streams/{streamId}/diff/{otherId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/streams/{streamId}/diff/{otherId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/streams/{streamId}/diff/{otherId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /streams/{streamId}/diff/{otherId}

-

StreamDiff

-

Diffs two streams, by objects and layers.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
streamIdpathstringtrueThe stream's id.
otherIdpathstringtrueThe stream you want to diff against.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": {
-    "common": [
-      "string"
-    ],
-    "inA": [
-      "string"
-    ],
-    "inB": [
-      "string"
-    ]
-  },
-  "layers": {
-    "common": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "inA": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "inB": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ]
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseStreamDiff
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

Objects

-

Directly CRUD objects in the database. They are not part of streams, and, as such, kindof suck.

-

ObjectCreate

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/objects \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/objects HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/objects',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "object": {}
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/objects',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/objects',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/objects', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/objects");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /objects

-

ObjectCreate

-

Creates an object.

-
-

Body parameter

-
-
{
-  "object": {
-    "type": "Boolean",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {}
-  }
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyobjecttrueNo description
» objectbodySpeckleObjecttrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseObjectCreate
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ObjectGet

-
-

Code samples

-
-
# You can also use wget
-curl -X GET http://localhost:8080/api/objects/{objectId} \
-  -H 'Accept: application/json'
-
-
-
GET http://localhost:8080/api/objects/{objectId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/objects/{objectId}',
-  method: 'get',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/objects/{objectId}',
-{
-  method: 'GET',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.get 'http://localhost:8080/api/objects/{objectId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.get('http://localhost:8080/api/objects/{objectId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/objects/{objectId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

GET /objects/{objectId}

-

ObjectGet

-

Gets a SpeckleObject from the database.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
objectIdpathstringtrueNo description
queryquerystringfalseSpecify which fields to retrieve or omit.
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "speckleObject": {
-    "type": "Boolean",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {}
-  }
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKObject foundResponseObjectGet
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
404Not FoundStatus 404None
- -

ObjectUpdate

-
-

Code samples

-
-
# You can also use wget
-curl -X PUT http://localhost:8080/api/objects/{objectId} \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
PUT http://localhost:8080/api/objects/{objectId} HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/objects/{objectId}',
-  method: 'put',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "object": {}
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/objects/{objectId}',
-{
-  method: 'PUT',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.put 'http://localhost:8080/api/objects/{objectId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.put('http://localhost:8080/api/objects/{objectId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/objects/{objectId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

PUT /objects/{objectId}

-

ObjectUpdate

-

Updates an object by its id.

-
-

Body parameter

-
-
{
-  "object": {
-    "type": "Boolean",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {}
-  }
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
objectIdpathstringtrueNo description
bodybodyobjecttrueNo description
» objectbodySpeckleObjectfalseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseObjectUpdate
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ObjectDelete

-
-

Code samples

-
-
# You can also use wget
-curl -X DELETE http://localhost:8080/api/objects/{objectId} \
-  -H 'Accept: application/json'
-
-
-
DELETE http://localhost:8080/api/objects/{objectId} HTTP/1.1
-Host: localhost:8080
-
-Accept: application/json
-
-
-
var headers = {
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/objects/{objectId}',
-  method: 'delete',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-
-const headers = {
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/objects/{objectId}',
-{
-  method: 'DELETE',
-
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Accept' => 'application/json'
-}
-
-result = RestClient.delete 'http://localhost:8080/api/objects/{objectId}',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Accept': 'application/json'
-}
-
-r = requests.delete('http://localhost:8080/api/objects/{objectId}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/objects/{objectId}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

DELETE /objects/{objectId}

-

ObjectDelete

-

Flags an object for deletion.

-

Parameters

- - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
objectIdpathstringtrueNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKDone deal yo!ResponseBase
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ObjectCreateBulk

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/objects/bulk \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/objects/bulk HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/objects/bulk',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/objects/bulk',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/objects/bulk',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/objects/bulk', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/objects/bulk");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /objects/bulk

-

ObjectCreateBulk

-

Creates and stores in the database a SpeckleObject.

-
-

Body parameter

-
-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyAddLayerObjectsBodytrueNo description
» objectsbody[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type.
»» typebodystringtrueobject's type
»» hashbodystringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashbodystringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdbodystringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesbodyobjectfalseAnything goes in here, including other (speckle) objects.
»» typebodyUnknownfalseNo description
»» descriptionbodyUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-
» objects
-

Base class that is inherited by all other Speckle objects. The only required value is its type.

-

Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.

-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponsePostObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

ObjectGetBulk

-
-

Code samples

-
-
# You can also use wget
-curl -X POST http://localhost:8080/api/objects/getbulk \
-  -H 'Content-Type: application/json' \
-  -H 'Accept: application/json'
-
-
-
POST http://localhost:8080/api/objects/getbulk HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Accept: application/json
-
-
-
var headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-$.ajax({
-  url: 'http://localhost:8080/api/objects/getbulk',
-  method: 'post',
-
-  headers: headers,
-  success: function(data) {
-    console.log(JSON.stringify(data));
-  }
-})
-
-
const request = require('node-fetch');
-const inputBody = '{
-  "objects": [
-    "string"
-  ]
-}';
-const headers = {
-  'Content-Type':'application/json',
-  'Accept':'application/json'
-
-};
-
-fetch('http://localhost:8080/api/objects/getbulk',
-{
-  method: 'POST',
-  body: inputBody,
-  headers: headers
-})
-.then(function(res) {
-    return res.json();
-}).then(function(body) {
-    console.log(body);
-});
-
-
require 'rest-client'
-require 'json'
-
-headers = {
-  'Content-Type' => 'application/json',
-  'Accept' => 'application/json'
-}
-
-result = RestClient.post 'http://localhost:8080/api/objects/getbulk',
-  params: {
-  }, headers: headers
-
-p JSON.parse(result)
-
-
import requests
-headers = {
-  'Content-Type': 'application/json',
-  'Accept': 'application/json'
-}
-
-r = requests.post('http://localhost:8080/api/objects/getbulk', params={
-
-}, headers = headers)
-
-print r.json()
-
-
URL obj = new URL("http://localhost:8080/api/objects/getbulk");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
-    new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
-    response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-

POST /objects/getbulk

-

ObjectGetBulk

-

Gets a load of SpeckleObjects.

-
-

Body parameter

-
-
{
-  "objects": [
-    "string"
-  ]
-}
-
-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterInTypeRequiredDescription
bodybodyobjecttrueNo description
» objectsbody[string]falseNo description
-
-

Example responses

-
-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-
{
-  "success": true,
-  "message": "string"
-}
-
-

Responses

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusMeaningDescriptionSchema
200OKStatus 200ResponseGetObjects
400Bad RequestFail whale.ResponseBase
401UnauthorizedUnauthorised whale.ResponseBase
- -

Schemas

-

User

-

-
{
-  "_id": "string",
-  "apitoken": "string",
-  "email": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string",
-  "logins": [
-    {
-      "date": "string"
-    }
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
_idstringfalseDatabase uuid.
apitokenstringfalsea signed jwt token that expires in 1 year.
emailstringfalseuser's email
namestringfalseUser's given name
surnamestringfalseUser's family name
companystringfalseUsers's company
logins[object]falseit's a timestamp XD
» datestringfalseNo description
-

SpeckleClient

-

-
{
-  "_id": "string",
-  "role": "string",
-  "documentGuid": "string",
-  "documentName": "string",
-  "documentType": "string",
-  "streamId": "string",
-  "owner": "string",
-  "online": true
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
_idstringfalseDatabase uuid.
rolestringfalseSender, Receiver, Mixed (for both), Parametric Sender if it can operate on parameters inside a defintion, or whatever else we can think of.
documentGuidstringfalseNo description
documentNamestringfalseNo description
documentTypestringfalseNo description
streamIdstringfalseThe streamId that this clients 'listens to'.
ownerstringfalseNo description
onlinebooleanfalseIs it accessible from the server or not?
-

DataStream

-

-
{
-  "_id": "string",
-  "streamId": "string",
-  "owner": "string",
-  "private": false,
-  "name": "Anonymous Stream",
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ],
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ],
-  "parent": "string",
-  "children": [
-    "string"
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
_idstringfalseDatabase uuid.
streamIdstringtrueThe stream's short id.
ownerstringfalseThe owner's user id.
privatebooleanfalseNo description
namestringtrueThe data stream's name
parentstringfalseParent stream's id, if any. If null, this is a root stream.
objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
» namestringfalseLayer's name
» guidstringfalseLayer's guid (must be unique)
» orderIndexintegerfalseDescribes this layer's position in the list of layers.
» startIndexnumberfalseThe index of the first object relative to the stream's objects array
» objectCountnumberfalseHow many objects does this layer have.
» topologystringfalseString describing the nested tree structure (Gh centric).
» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»» colorobjectfalseNo description
»»» anumberfalsealpha value
»»» hexstringfalsehex color value
»» visiblebooleanfalsetoggles layer visibility.
»» pointsizenumberfalsedefines point size in threejs
»» linewidthnumberfalsedefines line thickness in threejs
»» shininessnumberfalsesays it all. speckle is superficial.
»» smoothbooleanfalsesmooth shading toggle
»» showEdgesbooleanfalsedisplay edges or not yo.
»» wireframebooleanfalsei'm bored.
» propertiesUnknownfalseNo description
» descriptionUnknownfalseNo description
» x-old-refUnknownfalseNo description
children[string]falseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

SpeckleLayer

-

-
{
-  "name": "string",
-  "guid": "string",
-  "orderIndex": 0,
-  "startIndex": 0,
-  "objectCount": 0,
-  "topology": "0;0;0;0-2 0;0;0;1-2",
-  "properties": {
-    "color": {
-      "a": 1,
-      "hex": "#d4d4d4"
-    },
-    "visible": true,
-    "pointsize": 0,
-    "linewidth": 0,
-    "shininess": 0,
-    "smooth": true,
-    "showEdges": true,
-    "wireframe": true
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
namestringfalseLayer's name
guidstringfalseLayer's guid (must be unique)
orderIndexintegerfalseDescribes this layer's position in the list of layers.
startIndexnumberfalseThe index of the first object relative to the stream's objects array
objectCountnumberfalseHow many objects does this layer have.
topologystringfalseString describing the nested tree structure (Gh centric).
propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
» colorobjectfalseNo description
»» anumberfalsealpha value
»» hexstringfalsehex color value
» visiblebooleanfalsetoggles layer visibility.
» pointsizenumberfalsedefines point size in threejs
» linewidthnumberfalsedefines line thickness in threejs
» shininessnumberfalsesays it all. speckle is superficial.
» smoothbooleanfalsesmooth shading toggle
» showEdgesbooleanfalsedisplay edges or not yo.
» wireframebooleanfalsei'm bored.
typeUnknownfalseNo description
propertiesUnknownfalseNo description
descriptionUnknownfalseNo description
x-old-refUnknownfalseNo description
-

SpeckleLayerProperties

-

-
{
-  "color": {
-    "a": 1,
-    "hex": "#d4d4d4"
-  },
-  "visible": true,
-  "pointsize": 0,
-  "linewidth": 0,
-  "shininess": 0,
-  "smooth": true,
-  "showEdges": true,
-  "wireframe": true
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
colorobjectfalseNo description
» anumberfalsealpha value
» hexstringfalsehex color value
visiblebooleanfalsetoggles layer visibility.
pointsizenumberfalsedefines point size in threejs
linewidthnumberfalsedefines line thickness in threejs
shininessnumberfalsesays it all. speckle is superficial.
smoothbooleanfalsesmooth shading toggle
showEdgesbooleanfalsedisplay edges or not yo.
wireframebooleanfalsei'm bored.
-

SpeckleObject

-

-
{
-  "type": "Boolean",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {}
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typestringtrueobject's type
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
typeBoolean
typeNumber
typeString
typeInterval
typeInterval2d
typePoint
typeVector
typePlane
typeLine
typeRectangle
typeCircle
typeBox
typePolyline
typeCurve
typeMesh
typeBrep
typeNull
-

SpeckleBoolean

-

-
{
-  "type": "Boolean",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "value": true
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
valuebooleanfalseNo description
typeUnknownfalseNo description
descriptionUnknownfalseNo description
-

SpeckleNumber

-

-
{
-  "type": "Number",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "value": 0
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
valuenumberfalseA number. Can be float, double, etc.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
-

SpeckleString

-

-
{
-  "type": "String",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "value": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
valuestringfalseA string.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
-

SpeckleInterval

-

-
{
-  "type": "Interval",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "start": 0,
-  "end": 0
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
startnumberfalseNo description
endnumberfalseNo description
typeUnknownfalseNo description
descriptionUnknownfalseNo description
-

SpeckleInterval2d

-

-
{
-  "type": "Boolean",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "U": {
-    "type": "Interval",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "start": 0,
-    "end": 0
-  },
-  "V": {
-    "type": "Interval",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "start": 0,
-    "end": 0
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typestringtrueobject's type
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
USpeckleIntervalfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» startnumberfalseNo description
» endnumberfalseNo description
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
VSpeckleIntervalfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» startnumberfalseNo description
» endnumberfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
typeBoolean
typeNumber
typeString
typeInterval
typeInterval2d
typePoint
typeVector
typePlane
typeLine
typeRectangle
typeCircle
typeBox
typePolyline
typeCurve
typeMesh
typeBrep
typeNull
-

SpecklePoint

-

-
{
-  "type": "Point",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "value": [
-    0
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
value[number]falseNo description
-

SpeckleVector

-

-
{
-  "type": "Vector",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "value": [
-    0
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
value[number]falseNo description
-

SpecklePlane

-

-
{
-  "type": "Plane",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "Origin": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "Normal": {
-    "type": "Vector",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "Xdir": {
-    "type": "Vector",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "Ydir": {
-    "type": "Vector",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
OriginSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
» value[number]falseNo description
NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
-

SpeckleLine

-

-
{
-  "type": "Line",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "start": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "end": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
startSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
» value[number]falseNo description
endSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
-

SpeckleRectangle

-

-
{
-  "type": "Rectangle",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "A": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "B": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "C": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "D": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
ASpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
» value[number]falseNo description
BSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
CSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
DSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
-

SpeckleCircle

-

-
{
-  "type": "Circle",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "radius": 0,
-  "center": {
-    "type": "Point",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  },
-  "normal": {
-    "type": "Vector",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
radiusnumberfalseNo description
centerSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
» value[number]falseNo description
normalSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» value[number]falseNo description
-

SpeckleBox

-

-
{
-  "type": "Box",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "basePlane": {
-    "type": "Plane",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "Origin": {
-      "type": "Point",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {},
-      "value": [
-        0
-      ]
-    },
-    "Normal": {
-      "type": "Vector",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {},
-      "value": [
-        0
-      ]
-    },
-    "Xdir": {
-      "type": "Vector",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {},
-      "value": [
-        0
-      ]
-    },
-    "Ydir": {
-      "type": "Vector",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {},
-      "value": [
-        0
-      ]
-    }
-  },
-  "xSize": {
-    "type": "Interval",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "start": 0,
-    "end": 0
-  },
-  "ySize": {
-    "type": "Interval",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "start": 0,
-    "end": 0
-  },
-  "zSize": {
-    "type": "Interval",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "start": 0,
-    "end": 0
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
basePlaneSpecklePlanefalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» OriginSpecklePointfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typeUnknowntrueNo description
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» typeUnknownfalseNo description
»» descriptionUnknownfalseNo description
»» value[number]falseNo description
» NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typeUnknowntrueNo description
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» value[number]falseNo description
» XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typeUnknowntrueNo description
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» value[number]falseNo description
» YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typeUnknowntrueNo description
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» value[number]falseNo description
xSizeSpeckleIntervalfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» startnumberfalseNo description
» endnumberfalseNo description
ySizeSpeckleIntervalfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» startnumberfalseNo description
» endnumberfalseNo description
zSizeSpeckleIntervalfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» startnumberfalseNo description
» endnumberfalseNo description
-

SpecklePolyline

-

-
{
-  "type": "Polyline",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "value": [
-    0
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
value[number]falseNo description
-

SpeckleCurve

-

-
{
-  "type": "Curve",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "base64": "string",
-  "provenance": "string",
-  "displayValue": {
-    "type": "Polyline",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "value": [
-      0
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
base64stringfalseSee SpeckleBrep.
provenancestringfalseSee SpeckleBrep.
displayValueSpecklePolylinefalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
» value[number]falseNo description
-

SpeckleMesh

-

-
{
-  "type": "Mesh",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "vertices": [
-    0
-  ],
-  "faces": [
-    0
-  ],
-  "colors": [
-    0
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
typeUnknownfalseNo description
descriptionUnknownfalseNo description
vertices[number]falseNo description
faces[number]falseNo description
colors[number]falseNo description
-

SpeckleBrep

-

-
{
-  "type": "Brep",
-  "hash": "hash",
-  "geometryHash": "Type.hash",
-  "applicationId": "GUID",
-  "properties": {},
-  "base64": "string",
-  "provenance": "string",
-  "displayValue": {
-    "type": "Mesh",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {},
-    "vertices": [
-      0
-    ],
-    "faces": [
-      0
-    ],
-    "colors": [
-      0
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
typeUnknowntrueNo description
hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
propertiesobjectfalseAnything goes in here, including other (speckle) objects.
base64stringfalseA base64 encoded string of the raw byte array of the object. Do not worry base64 encoding making strings 1.5x bigger, gzip essentially neutralises this - both in transit and in the db.
provenancestringfalseA short prefix of where the base64 comes from. For example, Rhino objects get ON aka Open Nurbs. Later down the road this should be a strict enum.
displayValueSpeckleMeshfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typeUnknowntrueNo description
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
» vertices[number]falseNo description
» faces[number]falseNo description
» colors[number]falseNo description
-

PayloadAccountRegister

-

-
{
-  "email": "string",
-  "password": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
emailstringtrueNo description
passwordstringtrueNo description
namestringfalseNo description
surnamestringfalseNo description
companystringfalseNo description
-

PayloadAccountLogin

-

-
{
-  "email": "string",
-  "password": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
emailstringtrueNo description
passwordstringtrueNo description
-

PayloadAccountUpdate

-

-
{
-  "email": "string",
-  "name": "string",
-  "surname": "string",
-  "company": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
emailstringfalseNo description
namestringfalseNo description
surnamestringfalseNo description
companystringfalseNo description
-

PayloadClientCreate

-

-
{
-  "client": {
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string"
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
clientobjectfalseNo description
» rolestringfalseNo description
» documentGuidstringfalseNo description
» documentNamestringfalseNo description
» documentTypestringfalseNo description
» streamIdstringfalseNo description
-

PayloadClientUpdate

-

-
{
-  "client": {
-    "_id": "string",
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string",
-    "owner": "string",
-    "online": true
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
clientSpeckleClientfalseA representation of the manifestation of a Speckle Client. Whenever an instance of a client is born in any software, it should get its matching identity on the server. When deserialising itself, it should call back to the database and set itself as online. Its uuid sould server as sessionId for the websocket client.
» _idstringfalseDatabase uuid.
» rolestringfalseSender, Receiver, Mixed (for both), Parametric Sender if it can operate on parameters inside a defintion, or whatever else we can think of.
» documentGuidstringfalseNo description
» documentNamestringfalseNo description
» documentTypestringfalseNo description
» streamIdstringfalseThe streamId that this clients 'listens to'.
» ownerstringfalseNo description
» onlinebooleanfalseIs it accessible from the server or not?
-

PayloadStreamUpdate

-

-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ],
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ],
-  "name": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
namestringfalseNo description
objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
» namestringfalseLayer's name
» guidstringfalseLayer's guid (must be unique)
» orderIndexintegerfalseDescribes this layer's position in the list of layers.
» startIndexnumberfalseThe index of the first object relative to the stream's objects array
» objectCountnumberfalseHow many objects does this layer have.
» topologystringfalseString describing the nested tree structure (Gh centric).
» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»» colorobjectfalseNo description
»»» anumberfalsealpha value
»»» hexstringfalsehex color value
»» visiblebooleanfalsetoggles layer visibility.
»» pointsizenumberfalsedefines point size in threejs
»» linewidthnumberfalsedefines line thickness in threejs
»» shininessnumberfalsesays it all. speckle is superficial.
»» smoothbooleanfalsesmooth shading toggle
»» showEdgesbooleanfalsedisplay edges or not yo.
»» wireframebooleanfalsei'm bored.
» propertiesUnknownfalseNo description
» descriptionUnknownfalseNo description
» x-old-refUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

PayloadStreamNameUpdate

-

-
{
-  "name": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
namestringtrueNo description
-

PayloadCreateObject

-

-
{
-  "object": {
-    "type": "Boolean",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {}
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
objectSpeckleObjectfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

PayloadObjectUpdate

-

-
{
-  "object": {
-    "type": "Boolean",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {}
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
objectSpeckleObjecttrueBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

PayloadObjectCreateWithArray

-

-
{
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

PayloadObjectGetWithArray

-

-
{
-  "objects": [
-    "string"
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
objects[string]falseNo description
-

ResponseBase

-

-
{
-  "success": true,
-  "message": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
-

ResponseAccountRegister

-

-
{
-  "success": true,
-  "message": "string",
-  "token": "string",
-  "apiToken": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
tokenstringfalseSession token, expires in 1 day.
apiTokenstringfalseAPI token, expires in 1 year.
-

ResponseAccountLogin

-

-
{
-  "success": true,
-  "message": "string",
-  "token": "string",
-  "apiToken": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
tokenstringfalseSession token, expires in 1 day.
apiTokenstringfalseAPI token, expires in 1 year.
-

ResponseAccountStreams

-

-
{
-  "success": true,
-  "message": "string",
-  "streams": [
-    {
-      "_id": "string",
-      "streamId": "string",
-      "owner": "string",
-      "private": false,
-      "name": "Anonymous Stream",
-      "objects": [
-        {
-          "type": "Boolean",
-          "hash": "hash",
-          "geometryHash": "Type.hash",
-          "applicationId": "GUID",
-          "properties": {}
-        }
-      ],
-      "layers": [
-        {
-          "name": "string",
-          "guid": "string",
-          "orderIndex": 0,
-          "startIndex": 0,
-          "objectCount": 0,
-          "topology": "0;0;0;0-2 0;0;0;1-2",
-          "properties": {
-            "color": {
-              "a": 1,
-              "hex": "#d4d4d4"
-            },
-            "visible": true,
-            "pointsize": 0,
-            "linewidth": 0,
-            "shininess": 0,
-            "smooth": true,
-            "showEdges": true,
-            "wireframe": true
-          }
-        }
-      ],
-      "parent": "string",
-      "children": [
-        "string"
-      ]
-    }
-  ],
-  "sharedStreams": [
-    {
-      "_id": "string",
-      "streamId": "string",
-      "owner": "string",
-      "private": false,
-      "name": "Anonymous Stream",
-      "objects": [
-        {
-          "type": "Boolean",
-          "hash": "hash",
-          "geometryHash": "Type.hash",
-          "applicationId": "GUID",
-          "properties": {}
-        }
-      ],
-      "layers": [
-        {
-          "name": "string",
-          "guid": "string",
-          "orderIndex": 0,
-          "startIndex": 0,
-          "objectCount": 0,
-          "topology": "0;0;0;0-2 0;0;0;1-2",
-          "properties": {
-            "color": {
-              "a": 1,
-              "hex": "#d4d4d4"
-            },
-            "visible": true,
-            "pointsize": 0,
-            "linewidth": 0,
-            "shininess": 0,
-            "smooth": true,
-            "showEdges": true,
-            "wireframe": true
-          }
-        }
-      ],
-      "parent": "string",
-      "children": [
-        "string"
-      ]
-    }
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
streams[DataStream]falseDescribes a data stream. The data stream's streamId will define the channel on which real-time updates will be distributed on the websocket server.
» _idstringfalseDatabase uuid.
» streamIdstringtrueThe stream's short id.
» ownerstringfalseThe owner's user id.
» privatebooleanfalseNo description
» namestringtrueThe data stream's name
» parentstringfalseParent stream's id, if any. If null, this is a root stream.
» objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typestringtrueobject's type
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» typeUnknownfalseNo description
»» descriptionUnknownfalseNo description
» layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» propertiesUnknownfalseNo description
»» descriptionUnknownfalseNo description
»» x-old-refUnknownfalseNo description
» children[string]falseNo description
sharedStreams[DataStream]falseDescribes a data stream. The data stream's streamId will define the channel on which real-time updates will be distributed on the websocket server.
» _idstringfalseDatabase uuid.
» streamIdstringtrueThe stream's short id.
» ownerstringfalseThe owner's user id.
» privatebooleanfalseNo description
» namestringtrueThe data stream's name
» parentstringfalseParent stream's id, if any. If null, this is a root stream.
» objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typestringtrueobject's type
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» propertiesUnknownfalseNo description
» children[string]falseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-

ResponseAccountClients

-

-
{
-  "success": true,
-  "message": "string",
-  "clients": [
-    {
-      "_id": "string",
-      "role": "string",
-      "documentGuid": "string",
-      "documentName": "string",
-      "documentType": "string",
-      "streamId": "string",
-      "owner": "string",
-      "online": true
-    }
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
clients[SpeckleClient]falseA representation of the manifestation of a Speckle Client. Whenever an instance of a client is born in any software, it should get its matching identity on the server. When deserialising itself, it should call back to the database and set itself as online. Its uuid sould server as sessionId for the websocket client.
» _idstringfalseDatabase uuid.
» rolestringfalseSender, Receiver, Mixed (for both), Parametric Sender if it can operate on parameters inside a defintion, or whatever else we can think of.
» documentGuidstringfalseNo description
» documentNamestringfalseNo description
» documentTypestringfalseNo description
» streamIdstringfalseThe streamId that this clients 'listens to'.
» ownerstringfalseNo description
» onlinebooleanfalseIs it accessible from the server or not?
-

ResponseAccountProfile

-

-
{
-  "success": true,
-  "message": "string",
-  "user": {
-    "_id": "string",
-    "apitoken": "string",
-    "email": "string",
-    "name": "string",
-    "surname": "string",
-    "company": "string",
-    "logins": [
-      {
-        "date": "string"
-      }
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
userUserfalseDescribes a user.
» _idstringfalseDatabase uuid.
» apitokenstringfalsea signed jwt token that expires in 1 year.
» emailstringfalseuser's email
» namestringfalseUser's given name
» surnamestringfalseUser's family name
» companystringfalseUsers's company
» logins[object]falseit's a timestamp XD
»» datestringfalseNo description
-

ResponseClientCreate

-

-
{
-  "success": true,
-  "message": "string",
-  "clientId": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
clientIdstringfalsethe client's uuid. save & serialise this!
-

ResponseClientGet

-

-
{
-  "success": true,
-  "message": "string",
-  "client": {
-    "_id": "string",
-    "role": "string",
-    "documentGuid": "string",
-    "documentName": "string",
-    "documentType": "string",
-    "streamId": "string",
-    "owner": "string",
-    "online": true
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
clientSpeckleClientfalseA representation of the manifestation of a Speckle Client. Whenever an instance of a client is born in any software, it should get its matching identity on the server. When deserialising itself, it should call back to the database and set itself as online. Its uuid sould server as sessionId for the websocket client.
» _idstringfalseDatabase uuid.
» rolestringfalseSender, Receiver, Mixed (for both), Parametric Sender if it can operate on parameters inside a defintion, or whatever else we can think of.
» documentGuidstringfalseNo description
» documentNamestringfalseNo description
» documentTypestringfalseNo description
» streamIdstringfalseThe streamId that this clients 'listens to'.
» ownerstringfalseNo description
» onlinebooleanfalseIs it accessible from the server or not?
-

ResponseStreamCreate

-

-
{
-  "success": true,
-  "message": "string",
-  "stream": {
-    "_id": "string",
-    "streamId": "string",
-    "owner": "string",
-    "private": false,
-    "name": "Anonymous Stream",
-    "objects": [
-      {
-        "type": "Boolean",
-        "hash": "hash",
-        "geometryHash": "Type.hash",
-        "applicationId": "GUID",
-        "properties": {}
-      }
-    ],
-    "layers": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "parent": "string",
-    "children": [
-      "string"
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
streamDataStreamfalseDescribes a data stream. The data stream's streamId will define the channel on which real-time updates will be distributed on the websocket server.
» _idstringfalseDatabase uuid.
» streamIdstringtrueThe stream's short id.
» ownerstringfalseThe owner's user id.
» privatebooleanfalseNo description
» namestringtrueThe data stream's name
» parentstringfalseParent stream's id, if any. If null, this is a root stream.
» objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typestringtrueobject's type
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» typeUnknownfalseNo description
»» descriptionUnknownfalseNo description
» layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» propertiesUnknownfalseNo description
»» descriptionUnknownfalseNo description
»» x-old-refUnknownfalseNo description
» children[string]falseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-

ResponseStreamGet

-

-
{
-  "success": true,
-  "message": "string",
-  "stream": {
-    "_id": "string",
-    "streamId": "string",
-    "owner": "string",
-    "private": false,
-    "name": "Anonymous Stream",
-    "objects": [
-      {
-        "type": "Boolean",
-        "hash": "hash",
-        "geometryHash": "Type.hash",
-        "applicationId": "GUID",
-        "properties": {}
-      }
-    ],
-    "layers": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "parent": "string",
-    "children": [
-      "string"
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
streamDataStreamfalseDescribes a data stream. The data stream's streamId will define the channel on which real-time updates will be distributed on the websocket server.
» _idstringfalseDatabase uuid.
» streamIdstringtrueThe stream's short id.
» ownerstringfalseThe owner's user id.
» privatebooleanfalseNo description
» namestringtrueThe data stream's name
» parentstringfalseParent stream's id, if any. If null, this is a root stream.
» objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
»» typestringtrueobject's type
»» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
»» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
»» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
»» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
»» typeUnknownfalseNo description
»» descriptionUnknownfalseNo description
» layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» propertiesUnknownfalseNo description
»» descriptionUnknownfalseNo description
»» x-old-refUnknownfalseNo description
» children[string]falseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
»» typeBoolean
»» typeNumber
»» typeString
»» typeInterval
»» typeInterval2d
»» typePoint
»» typeVector
»» typePlane
»» typeLine
»» typeRectangle
»» typeCircle
»» typeBox
»» typePolyline
»» typeCurve
»» typeMesh
»» typeBrep
»» typeNull
-

ResponseStreamLayersGet

-

-
{
-  "success": true,
-  "message": "string",
-  "layers": [
-    {
-      "name": "string",
-      "guid": "string",
-      "orderIndex": 0,
-      "startIndex": 0,
-      "objectCount": 0,
-      "topology": "0;0;0;0-2 0;0;0;1-2",
-      "properties": {
-        "color": {
-          "a": 1,
-          "hex": "#d4d4d4"
-        },
-        "visible": true,
-        "pointsize": 0,
-        "linewidth": 0,
-        "shininess": 0,
-        "smooth": true,
-        "showEdges": true,
-        "wireframe": true
-      }
-    }
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
layers[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
» namestringfalseLayer's name
» guidstringfalseLayer's guid (must be unique)
» orderIndexintegerfalseDescribes this layer's position in the list of layers.
» startIndexnumberfalseThe index of the first object relative to the stream's objects array
» objectCountnumberfalseHow many objects does this layer have.
» topologystringfalseString describing the nested tree structure (Gh centric).
» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»» colorobjectfalseNo description
»»» anumberfalsealpha value
»»» hexstringfalsehex color value
»» visiblebooleanfalsetoggles layer visibility.
»» pointsizenumberfalsedefines point size in threejs
»» linewidthnumberfalsedefines line thickness in threejs
»» shininessnumberfalsesays it all. speckle is superficial.
»» smoothbooleanfalsesmooth shading toggle
»» showEdgesbooleanfalsedisplay edges or not yo.
»» wireframebooleanfalsei'm bored.
» typeUnknownfalseNo description
» propertiesUnknownfalseNo description
» descriptionUnknownfalseNo description
» x-old-refUnknownfalseNo description
-

ResponseStreamNameGet

-

-
{
-  "success": true,
-  "message": "string",
-  "name": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
namestringfalseNo description
-

ResponseStreamUpdate

-

-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
objects[string]falseNo description
-

ResponseStreamClone

-

-
{
-  "success": true,
-  "message": "string",
-  "clone": {
-    "_id": "string",
-    "streamId": "string"
-  },
-  "parent": {
-    "_id": "string",
-    "streamId": "string",
-    "children": [
-      "string"
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
cloneobjectfalseNo description
» _idstringfalsethe cloned data stream's new id.
» streamIdstringfalsethe cloned data stream's new streamId.
parentobjectfalseNo description
» _idstringfalseNo description
» streamIdstringfalseNo description
» children[string]falseNo description
-

ResponseStreamDiff

-

-
{
-  "success": true,
-  "message": "string",
-  "objects": {
-    "common": [
-      "string"
-    ],
-    "inA": [
-      "string"
-    ],
-    "inB": [
-      "string"
-    ]
-  },
-  "layers": {
-    "common": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "inA": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ],
-    "inB": [
-      {
-        "name": "string",
-        "guid": "string",
-        "orderIndex": 0,
-        "startIndex": 0,
-        "objectCount": 0,
-        "topology": "0;0;0;0-2 0;0;0;1-2",
-        "properties": {
-          "color": {
-            "a": 1,
-            "hex": "#d4d4d4"
-          },
-          "visible": true,
-          "pointsize": 0,
-          "linewidth": 0,
-          "shininess": 0,
-          "smooth": true,
-          "showEdges": true,
-          "wireframe": true
-        }
-      }
-    ]
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
objectsobjectfalseNo description
» common[string]falseNo description
» inA[string]falseNo description
» inB[string]falseNo description
layersobjectfalseNo description
» common[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» typeUnknownfalseNo description
»» propertiesUnknownfalseNo description
»» descriptionUnknownfalseNo description
»» x-old-refUnknownfalseNo description
» inA[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» propertiesUnknownfalseNo description
» inB[SpeckleLayer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
»» namestringfalseLayer's name
»» guidstringfalseLayer's guid (must be unique)
»» orderIndexintegerfalseDescribes this layer's position in the list of layers.
»» startIndexnumberfalseThe index of the first object relative to the stream's objects array
»» objectCountnumberfalseHow many objects does this layer have.
»» topologystringfalseString describing the nested tree structure (Gh centric).
»» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»»» colorobjectfalseNo description
»»»» anumberfalsealpha value
»»»» hexstringfalsehex color value
»»» visiblebooleanfalsetoggles layer visibility.
»»» pointsizenumberfalsedefines point size in threejs
»»» linewidthnumberfalsedefines line thickness in threejs
»»» shininessnumberfalsesays it all. speckle is superficial.
»»» smoothbooleanfalsesmooth shading toggle
»»» showEdgesbooleanfalsedisplay edges or not yo.
»»» wireframebooleanfalsei'm bored.
»» propertiesUnknownfalseNo description
-

ResponseSingleLayer

-

-
{
-  "success": true,
-  "message": "string",
-  "layer": {
-    "name": "string",
-    "guid": "string",
-    "orderIndex": 0,
-    "startIndex": 0,
-    "objectCount": 0,
-    "topology": "0;0;0;0-2 0;0;0;1-2",
-    "properties": {
-      "color": {
-        "a": 1,
-        "hex": "#d4d4d4"
-      },
-      "visible": true,
-      "pointsize": 0,
-      "linewidth": 0,
-      "shininess": 0,
-      "smooth": true,
-      "showEdges": true,
-      "wireframe": true
-    }
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
layerSpeckleLayerfalseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
» namestringfalseLayer's name
» guidstringfalseLayer's guid (must be unique)
» orderIndexintegerfalseDescribes this layer's position in the list of layers.
» startIndexnumberfalseThe index of the first object relative to the stream's objects array
» objectCountnumberfalseHow many objects does this layer have.
» topologystringfalseString describing the nested tree structure (Gh centric).
» propertiesSpeckleLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
»» colorobjectfalseNo description
»»» anumberfalsealpha value
»»» hexstringfalsehex color value
»» visiblebooleanfalsetoggles layer visibility.
»» pointsizenumberfalsedefines point size in threejs
»» linewidthnumberfalsedefines line thickness in threejs
»» shininessnumberfalsesays it all. speckle is superficial.
»» smoothbooleanfalsesmooth shading toggle
»» showEdgesbooleanfalsedisplay edges or not yo.
»» wireframebooleanfalsei'm bored.
» typeUnknownfalseNo description
» propertiesUnknownfalseNo description
» descriptionUnknownfalseNo description
» x-old-refUnknownfalseNo description
-

ResponseObjectCreate

-

-
{
-  "success": true,
-  "message": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
-

ResponseObjectGet

-

-
{
-  "success": true,
-  "message": "string",
-  "speckleObject": {
-    "type": "Boolean",
-    "hash": "hash",
-    "geometryHash": "Type.hash",
-    "applicationId": "GUID",
-    "properties": {}
-  }
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
speckleObjectSpeckleObjectfalseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

ResponseObjectUpdate

-

-
{
-  "success": true,
-  "message": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
-

ResponseObjectWithArrayCreate

-

-
{
-  "success": true,
-  "message": "string"
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
-

ResponseGetObjects

-

-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    {
-      "type": "Boolean",
-      "hash": "hash",
-      "geometryHash": "Type.hash",
-      "applicationId": "GUID",
-      "properties": {}
-    }
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects. The only required value is its type. Important note: the following types: [ Polyline, Curve, Mesh, Brep ] are treated server side in a special manner, as they can be unbounded in size.
» typestringtrueobject's type
» hashstringfalseObject's unique hash. It's generated server-side from JSON.stringify( obj.properties ) + obj.geometryHash using a murmurhash3 128bit function.
» geometryHashstringfalseIf the object contains 'heavy' geometry, it should have a geometry hash.
» applicationIdstringfalseIf this object is not an ephemeral object, (ie coming from Grasshopper or Dynamo), and has a unique, persistent and consistent application id, this is where to store said guid.
» propertiesobjectfalseAnything goes in here, including other (speckle) objects.
» typeUnknownfalseNo description
» descriptionUnknownfalseNo description
-

Enumerated Values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyValue
» typeBoolean
» typeNumber
» typeString
» typeInterval
» typeInterval2d
» typePoint
» typeVector
» typePlane
» typeLine
» typeRectangle
» typeCircle
» typeBox
» typePolyline
» typeCurve
» typeMesh
» typeBrep
» typeNull
-

ResponsePostObjects

-

-
{
-  "success": true,
-  "message": "string",
-  "objects": [
-    "string"
-  ]
-} 
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDescription
successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
messagestringfalseEither an error or a confirmation.
objects[string]falseNo description
- - -
-
- -
- - - curl - - - - JavaScript - - - - Node.JS - - - - Python - - - - Ruby - - - - Java - - -
- -
-
- - diff --git a/docs-old/pub/css/darkula.css b/docs-old/pub/css/darkula.css deleted file mode 100644 index 1c6853b..0000000 --- a/docs-old/pub/css/darkula.css +++ /dev/null @@ -1,152 +0,0 @@ -/* - -Darkula color scheme from the JetBrains family of IDEs - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #2b2b2b; - -webkit-text-size-adjust: none; -} - -.hljs, -.hljs-tag, -.hljs-title, -.css .hljs-rule, -.css .hljs-value, -.aspectj .hljs-function, -.css .hljs-function .hljs-preprocessor, -.hljs-pragma { - color: #bababa; -} - -.hljs-strongemphasis, -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-blockquote, -.hljs-horizontal_rule, -.hljs-number, -.hljs-regexp, -.alias .hljs-keyword, -.hljs-literal, -.hljs-hexcolor { - color: #6896ba; -} - -.hljs-tag .hljs-value, -.hljs-code, -.css .hljs-class, -.hljs-class .hljs-title:last-child { - color: #a6e22e; -} - -.hljs-link_url { - font-size: 80%; -} - -.hljs-emphasis, -.hljs-strongemphasis, -.hljs-class .hljs-title:last-child, -.hljs-typename { - font-style: italic; -} - -.hljs-keyword, -.ruby .hljs-class .hljs-keyword:first-child, -.ruby .hljs-function .hljs-keyword, -.hljs-function, -.hljs-change, -.hljs-winutils, -.hljs-flow, -.nginx .hljs-title, -.tex .hljs-special, -.hljs-header, -.hljs-attribute, -.hljs-symbol, -.hljs-symbol .hljs-string, -.hljs-tag .hljs-title, -.hljs-value, -.alias .hljs-keyword:first-child, -.css .hljs-tag, -.css .unit, -.css .hljs-important { - color: #cb7832; -} - -.hljs-function .hljs-keyword, -.hljs-class .hljs-keyword:first-child, -.hljs-aspect .hljs-keyword:first-child, -.hljs-constant, -.hljs-typename, -.css .hljs-attribute { - color: #cb7832; -} - -.hljs-variable, -.hljs-params, -.hljs-class .hljs-title, -.hljs-aspect .hljs-title { - color: #b9b9b9; -} - -.hljs-string, -.css .hljs-id, -.hljs-subst, -.hljs-type, -.ruby .hljs-class .hljs-parent, -.hljs-built_in, -.django .hljs-template_tag, -.django .hljs-variable, -.smalltalk .hljs-class, -.django .hljs-filter .hljs-argument, -.smalltalk .hljs-localvars, -.smalltalk .hljs-array, -.hljs-attr_selector, -.hljs-pseudo, -.hljs-addition, -.hljs-stream, -.hljs-envvar, -.apache .hljs-tag, -.apache .hljs-cbracket, -.tex .hljs-command, -.hljs-prompt, -.hljs-link_label, -.hljs-link_url, -.hljs-name { - color: #e0c46c; -} - -.hljs-comment, -.hljs-annotation, -.hljs-pi, -.hljs-doctype, -.hljs-deletion, -.hljs-shebang, -.apache .hljs-sqbracket, -.tex .hljs-formula { - color: #7f7f7f; -} - -.hljs-decorator { - color: #bab429; -} - -.coffeescript .javascript, -.javascript .xml, -.tex .hljs-formula, -.xml .javascript, -.xml .vbscript, -.xml .css, -.xml .hljs-cdata, -.xml .php, -.php .xml { - opacity: 0.5; -} diff --git a/docs-old/pub/css/obsidian.css b/docs-old/pub/css/obsidian.css deleted file mode 100644 index 3886f83..0000000 --- a/docs-old/pub/css/obsidian.css +++ /dev/null @@ -1,152 +0,0 @@ -/** - * Obsidian style - * ported by Alexander Marenin (http://github.com/ioncreature) - */ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282b2e; - -webkit-text-size-adjust: none; -} - -.hljs-keyword, -.hljs-literal, -.hljs-change, -.hljs-winutils, -.hljs-flow, -.nginx .hljs-title, -.css .hljs-id, -.tex .hljs-special { - color: #93c763; -} - -.hljs-number { - color: #ffcd22; -} - -.hljs { - color: #e0e2e4; -} - -.css .hljs-tag, -.css .hljs-pseudo { - color: #d0d2b5; -} - -.hljs-attribute, -.hljs .hljs-constant { - color: #668bb0; -} - -.xml .hljs-attribute { - color: #b3b689; -} - -.xml .hljs-tag .hljs-value { - color: #e8e2b7; -} - -.hljs-code, -.hljs-class .hljs-title, -.hljs-header { - color: white; -} - -.hljs-class, -.hljs-hexcolor { - color: #93c763; -} - -.hljs-regexp { - color: #d39745; -} - -.hljs-at_rule, -.hljs-at_rule .hljs-keyword { - color: #a082bd; -} - -.hljs-doctype { - color: #557182; -} - -.hljs-link_url, -.hljs-tag, -.hljs-tag .hljs-title, -.hljs-bullet, -.hljs-subst, -.hljs-emphasis, -.hljs-type, -.hljs-preprocessor, -.hljs-pragma, -.ruby .hljs-class .hljs-parent, -.hljs-built_in, -.django .hljs-template_tag, -.django .hljs-variable, -.smalltalk .hljs-class, -.django .hljs-filter .hljs-argument, -.smalltalk .hljs-localvars, -.smalltalk .hljs-array, -.hljs-attr_selector, -.hljs-pseudo, -.hljs-addition, -.hljs-stream, -.hljs-envvar, -.apache .hljs-tag, -.apache .hljs-cbracket, -.tex .hljs-command, -.hljs-prompt, -.hljs-name { - color: #8cbbad; -} - -.hljs-string { - color: #ec7600; -} - -.hljs-comment, -.hljs-annotation, -.hljs-blockquote, -.hljs-horizontal_rule, -.hljs-decorator, -.hljs-pi, -.hljs-deletion, -.hljs-shebang, -.apache .hljs-sqbracket, -.tex .hljs-formula { - color: #818e96; -} - -.hljs-keyword, -.hljs-literal, -.css .hljs-id, -.hljs-doctag, -.hljs-title, -.hljs-header, -.hljs-type, -.vbscript .hljs-built_in, -.rsl .hljs-built_in, -.smalltalk .hljs-class, -.diff .hljs-header, -.hljs-chunk, -.hljs-winutils, -.bash .hljs-variable, -.apache .hljs-tag, -.tex .hljs-special, -.hljs-request, -.hljs-at_rule .hljs-keyword, -.hljs-status { - font-weight: bold; -} - -.coffeescript .javascript, -.javascript .xml, -.tex .hljs-formula, -.xml .javascript, -.xml .vbscript, -.xml .css, -.xml .hljs-cdata { - opacity: 0.5; -} diff --git a/docs-old/pub/css/print.css b/docs-old/pub/css/print.css deleted file mode 100644 index a30e0e1..0000000 --- a/docs-old/pub/css/print.css +++ /dev/null @@ -1,495 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -.content h1, .content h2, .content h3, .content h4, body { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 14px; } - -.content h1, .content h2, .content h3, .content h4 { - font-weight: bold; } - -.content pre, .content code { - font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif; - font-size: 12px; - line-height: 1.5; } - -.content pre, .content code { - word-break: break-all; - hyphens: auto; } - -@font-face { - font-family: 'slate'; - src: url('../../source/fonts/slate.eot?-syv14m'); - src: url('../../source/fonts/slate.eot?#iefix-syv14m') format("embedded-opentype"), url('../../source/fonts/slate.woff2?-syv14m') format("woff2"), url('../../source/fonts/slate.woff?-syv14m') format("woff"), url('../../source/fonts/slate.ttf?-syv14m') format("truetype"), url('../../source/fonts/slate.svg?-syv14m#slate') format("svg"); - font-weight: normal; - font-style: normal; } - -.content aside.warning:before, .content aside.notice:before, .content aside.success:before { - font-family: 'slate'; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; } - -.content aside.warning:before { - content: "\e600"; } - -.content aside.notice:before { - content: "\e602"; } - -.content aside.success:before { - content: "\e606"; } - -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -.tocify, .toc-footer, .lang-selector, .search, #nav-button { - display: none; } - -.tocify-wrapper > img { - margin: 0 auto; - display: block; } - -.content { - font-size: 12px; } - .content pre, .content code { - border: 1px solid #999; - border-radius: 5px; - font-size: 0.8em; } - .content pre code { - border: 0; } - .content pre { - padding: 1.3em; } - .content code { - padding: 0.2em; } - .content table { - border: 1px solid #999; } - .content table tr { - border-bottom: 1px solid #999; } - .content table td, .content table th { - padding: 0.7em; } - .content p { - line-height: 1.5; } - .content a { - text-decoration: none; - color: #000; } - .content h1 { - font-size: 2.5em; - padding-top: 0.5em; - padding-bottom: 0.5em; - margin-top: 1em; - margin-bottom: 21px; - border: 2px solid #ccc; - border-width: 2px 0; - text-align: center; } - .content h2 { - font-size: 1.8em; - margin-top: 2em; - border-top: 2px solid #ccc; - padding-top: 0.8em; } - .content h1 + h2, .content h1 + div + h2 { - border-top: none; - padding-top: 0; - margin-top: 0; } - .content h3, .content h4 { - font-size: 0.8em; - margin-top: 1.5em; - margin-bottom: 0.8em; - text-transform: uppercase; } - .content h5, .content h6 { - text-transform: uppercase; } - .content aside { - padding: 1em; - border: 1px solid #ccc; - border-radius: 5px; - margin-top: 1.5em; - margin-bottom: 1.5em; - line-height: 1.6; } - .content aside:before { - vertical-align: middle; - padding-right: 0.5em; - font-size: 14px; } diff --git a/docs-old/pub/css/print_overrides.css b/docs-old/pub/css/print_overrides.css deleted file mode 100644 index 6a1db44..0000000 --- a/docs-old/pub/css/print_overrides.css +++ /dev/null @@ -1 +0,0 @@ -/* place your custom CSS overrides here */ diff --git a/docs-old/pub/css/screen.css b/docs-old/pub/css/screen.css deleted file mode 100644 index a0d40f7..0000000 --- a/docs-old/pub/css/screen.css +++ /dev/null @@ -1,796 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -.content h1, .content h2, .content h3, .content h4, .content h5, .content h6, html, body { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 14px; } - -.content h1, .content h2, .content h3, .content h4, .content h5, .content h6 { - font-weight: bold; } - -.content code, .content pre { - font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif; - font-size: 12px; - line-height: 1.5; } - -.content code { - word-break: break-all; - hyphens: auto; } - -@font-face { - font-family: 'slate'; - src: url('../../source/fonts/slate.eot?-syv14m'); - src: url('../../source/fonts/slate.eot?#iefix-syv14m') format("embedded-opentype"), url('../../source/fonts/slate.woff2?-syv14m') format("woff2"), url('../../source/fonts/slate.woff?-syv14m') format("woff"), url('../../source/fonts/slate.ttf?-syv14m') format("truetype"), url('../../source/fonts/slate.svg?-syv14m#slate') format("svg"); - font-weight: normal; - font-style: normal; } - -.content aside.warning:before, .content aside.notice:before, .content aside.success:before, .toc-wrapper > .search:before { - font-family: 'slate'; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; } - -.content aside.warning:before { - content: "\e600"; } - -.content aside.notice:before { - content: "\e602"; } - -.content aside.success:before { - content: "\e606"; } - -.toc-wrapper > .search:before { - content: "\e607"; } - -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -html, body { - color: #333; - padding: 0; - margin: 0; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - background-color: #F3F7F9; - height: 100%; - -webkit-text-size-adjust: none; - /* Never autoresize text */ } - -#toc > ul > li > a > span { - float: right; - background-color: #2484FF; - border-radius: 40px; - width: 20px; } - -.toc-wrapper { - transition: left 0.3s ease-in-out; - overflow-y: auto; - overflow-x: hidden; - position: fixed; - z-index: 30; - top: 0; - left: 0; - bottom: 0; - width: 230px; - background-color: #2E3336; - font-size: 13px; - font-weight: bold; } - .toc-wrapper .lang-selector { - display: none; } - .toc-wrapper .lang-selector a { - padding-top: 0.5em; - padding-bottom: 0.5em; } - .toc-wrapper > img { - display: block; - max-width: 100%; } - .toc-wrapper > .search { - position: relative; } - .toc-wrapper > .search input { - background: #2E3336; - border-width: 0 0 1px 0; - border-color: #666; - padding: 6px 0 6px 20px; - box-sizing: border-box; - margin: 10px 15px; - width: 200px; - outline: none; - color: #fff; - border-radius: 0; - /* ios has a default border radius */ } - .toc-wrapper > .search:before { - position: absolute; - top: 17px; - left: 15px; - color: #fff; } - .toc-wrapper .logo { - margin-bottom: 0px; } - .toc-wrapper .search-results { - margin-top: 0; - box-sizing: border-box; - height: 0; - overflow-y: auto; - overflow-x: hidden; - transition-property: height, margin; - transition-duration: 180ms; - transition-timing-function: ease-in-out; - background: #1E2224; } - .toc-wrapper .search-results.visible { - height: 30%; - margin-bottom: 1em; } - .toc-wrapper .search-results li { - margin: 1em 15px; - line-height: 1; } - .toc-wrapper .search-results a { - color: #fff; - text-decoration: none; } - .toc-wrapper .search-results a:hover { - text-decoration: underline; } - .toc-wrapper ul, .toc-wrapper li { - list-style: none; - margin: 0; - padding: 0; - line-height: 28px; } - .toc-wrapper li { - color: #fff; - transition-property: background; - transition-timing-function: linear; - transition-duration: 200ms; } - .toc-wrapper .toc-link.active { - background-color: #0F75D4; - color: #fff; } - .toc-wrapper .toc-link.active-parent { - background-color: #1E2224; - color: #fff; } - .toc-wrapper .toc-list-h2 { - display: none; - background-color: #1E2224; - font-weight: 500; } - .toc-wrapper .toc-h2 { - padding-left: 25px; - font-size: 12px; } - .toc-wrapper .toc-footer { - padding: 1em 0; - margin-top: 1em; - border-top: 1px dashed #666; } - .toc-wrapper .toc-footer li, .toc-wrapper .toc-footer a { - color: #fff; - text-decoration: none; } - .toc-wrapper .toc-footer a:hover { - text-decoration: underline; } - .toc-wrapper .toc-footer li { - font-size: 0.8em; - line-height: 1.7; - text-decoration: none; } - -.toc-link, .toc-footer li { - padding: 0 15px 0 15px; - display: block; - overflow-x: hidden; - white-space: nowrap; - text-overflow: ellipsis; - text-decoration: none; - color: #fff; - transition-property: background; - transition-timing-function: linear; - transition-duration: 130ms; } - -#nav-button { - padding: 0 1.5em 5em 0; - display: none; - position: fixed; - top: 0; - left: 0; - z-index: 100; - color: #000; - text-decoration: none; - font-weight: bold; - opacity: 0.7; - line-height: 16px; - transition: left 0.3s ease-in-out; } - #nav-button span { - display: block; - padding: 6px 6px 6px; - background-color: rgba(243, 247, 249, 0.7); - transform-origin: 0 0; - transform: rotate(-90deg) translate(-100%, 0); - border-radius: 0 0 0 5px; } - #nav-button img { - height: 16px; - vertical-align: bottom; } - #nav-button:hover { - opacity: 1; } - #nav-button.open { - left: 230px; } - -.page-wrapper { - margin-left: 230px; - position: relative; - z-index: 10; - background-color: #F3F7F9; - min-height: 100%; - padding-bottom: 1px; } - .page-wrapper .dark-box { - width: 50%; - background-color: #2E3336; - position: absolute; - right: 0; - top: 0; - bottom: 0; } - .page-wrapper .lang-selector { - position: fixed; - z-index: 50; - border-bottom: 5px solid #2E3336; } - -.lang-selector { - background-color: #1E2224; - width: 100%; - font-weight: bold; } - .lang-selector a { - display: block; - float: left; - color: #fff; - text-decoration: none; - padding: 0 10px; - line-height: 30px; - outline: 0; } - .lang-selector a:active, .lang-selector a:focus { - background-color: #111; - color: #fff; } - .lang-selector a.active { - background-color: #2E3336; - color: #fff; } - .lang-selector:after { - content: ''; - clear: both; - display: block; } - -.content { - -webkit-transform: translateZ(0); - position: relative; - z-index: 30; } - .content:after { - content: ''; - display: block; - clear: both; } - .content > h1, .content > h2, .content > h3, .content > h4, .content > h5, .content > h6, .content > p, .content > table, .content > ul, .content > ol, .content > aside, .content > dl { - margin-right: 50%; - padding: 0 28px; - box-sizing: border-box; - display: block; } - .content > ul, .content > ol { - padding-left: 43px; } - .content > h1, .content > h2, .content > div { - clear: both; } - .content h1 { - font-size: 25px; - padding-top: 0.5em; - padding-bottom: 0.5em; - margin-bottom: 21px; - margin-top: 2em; - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; - background-color: #fdfdfd; } - .content h1:first-child, .content div:first-child + h1 { - border-top-width: 0; - margin-top: 0; } - .content h2 { - font-size: 19px; - margin-top: 4em; - margin-bottom: 0; - border-top: 1px solid #ccc; - padding-top: 1.2em; - padding-bottom: 1.2em; - background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)); } - .content h1 + h2, .content h1 + div + h2 { - margin-top: -21px; - border-top: none; } - .content h3, .content h4, .content h5, .content h6 { - font-size: 15px; - margin-top: 2.5em; - margin-bottom: 0.8em; } - .content h4, .content h5, .content h6 { - font-size: 10px; } - .content hr { - margin: 2em 0; - border-top: 2px solid #2E3336; - border-bottom: 2px solid #F3F7F9; } - .content table { - margin-bottom: 1em; - overflow: auto; } - .content table th, .content table td { - text-align: left; - vertical-align: top; - line-height: 1.6; } - .content table th { - padding: 5px 10px; - border-bottom: 1px solid #ccc; - vertical-align: bottom; } - .content table td { - padding: 10px; } - .content table tr:last-child { - border-bottom: 1px solid #ccc; } - .content table tr:nth-child(odd) > td { - background-color: white; } - .content table tr:nth-child(even) > td { - background-color: #fbfcfd; } - .content dt { - font-weight: bold; } - .content dd { - margin-left: 15px; } - .content p, .content li, .content dt, .content dd { - line-height: 1.6; - margin-top: 0; } - .content img { - max-width: 100%; } - .content code { - background-color: rgba(0, 0, 0, 0.05); - padding: 3px; - border-radius: 3px; } - .content pre > code { - background-color: transparent; - padding: 0; } - .content aside { - padding-top: 1em; - padding-bottom: 1em; - margin-top: 1.5em; - margin-bottom: 1.5em; - background: #8fbcd4; - line-height: 1.6; } - .content aside.warning { - background-color: #c97a7e; } - .content aside.success { - background-color: #6ac174; } - .content aside:before { - vertical-align: middle; - padding-right: 0.5em; - font-size: 14px; } - .content .search-highlight { - padding: 2px; - margin: -2px; - border-radius: 4px; - border: 1px solid #F7E633; - background: linear-gradient(to top left, #F7E633 0%, #F1D32F 100%); } - -.content pre, .content blockquote { - background-color: #1E2224; - color: #fff; - margin: 0; - width: 50%; - float: right; - clear: right; - box-sizing: border-box; } - .content pre > p, .content blockquote > p { - margin: 0; } - .content pre a, .content blockquote a { - color: #fff; - text-decoration: none; - border-bottom: dashed 1px #ccc; } - -.content pre { - padding-top: 2em; - padding-bottom: 2em; - padding: 2em 28px; } - -.content blockquote > p { - background-color: #191D1F; - padding: 13px 2em; - color: #eee; } - -@media (max-width: 930px) { - .toc-wrapper { - left: -230px; } - .toc-wrapper.open { - left: 0; } - .page-wrapper { - margin-left: 0; } - #nav-button { - display: block; } - .toc-link { - padding-top: 0.3em; - padding-bottom: 0.3em; } } - -@media (max-width: 700px) { - .dark-box { - display: none; } - .content > h1, .content > h2, .content > h3, .content > h4, .content > h5, .content > h6, .content > p, .content > table, .content > ul, .content > ol, .content > aside, .content > dl { - margin-right: 0; } - .toc-wrapper .lang-selector { - display: block; } - .page-wrapper .lang-selector { - display: none; } - .content pre, .content blockquote { - width: auto; - float: none; } - .content > pre + h1, .content > blockquote + h1, .content > pre + h2, .content > blockquote + h2, .content > pre + h3, .content > blockquote + h3, .content > pre + h4, .content > blockquote + h4, .content > pre + h5, .content > blockquote + h5, .content > pre + h6, .content > blockquote + h6, .content > pre + p, .content > blockquote + p, .content > pre + table, .content > blockquote + table, .content > pre + ul, .content > blockquote + ul, .content > pre + ol, .content > blockquote + ol, .content > pre + aside, .content > blockquote + aside, .content > pre + dl, .content > blockquote + dl { - margin-top: 28px; } } - -.highlight .c, .highlight .cm, .highlight .c1, .highlight .cs { - color: #909090; } - -.highlight, .highlight .w { - background-color: #1E2224; } diff --git a/docs-old/pub/css/screen_overrides.css b/docs-old/pub/css/screen_overrides.css deleted file mode 100644 index 41c7da2..0000000 --- a/docs-old/pub/css/screen_overrides.css +++ /dev/null @@ -1,8 +0,0 @@ -/* place your custom CSS overrides here */ - -div .highlight { - max-width: 95%; - max-height: 350px; - overflow-y: auto; - overflow-x: hidden; -} diff --git a/docs-old/pub/css/theme_overrides.css b/docs-old/pub/css/theme_overrides.css deleted file mode 100644 index 6a1db44..0000000 --- a/docs-old/pub/css/theme_overrides.css +++ /dev/null @@ -1 +0,0 @@ -/* place your custom CSS overrides here */ diff --git a/docs-old/pub/js/shins.js b/docs-old/pub/js/shins.js deleted file mode 100644 index 1bd9965..0000000 --- a/docs-old/pub/js/shins.js +++ /dev/null @@ -1,4 +0,0 @@ -!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=ie.type(e);return"function"!==n&&!ie.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(ie.isFunction(t))return ie.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ie.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(he.test(t))return ie.filter(t,e,n);t=ie.filter(t,e)}return ie.grep(e,function(e){return Z.call(t,e)>-1!==n})}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t={};return ie.each(e.match(xe)||[],function(e,n){t[n]=!0}),t}function s(){Q.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s),ie.ready()}function a(){this.expando=ie.expando+a.uid++}function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ke,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Ee.test(n)?ie.parseJSON(n):n)}catch(e){}Ce.set(e,t,n)}else n=void 0;return n}function c(e,t,n,r){var i,o=1,s=20,a=r?function(){return r.cur()}:function(){return ie.css(e,t,"")},u=a(),c=n&&n[3]||(ie.cssNumber[t]?"":"px"),l=(ie.cssNumber[t]||"px"!==c&&+u)&&je.exec(ie.css(e,t));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do{o=o||".5",l/=o,ie.style(e,t,l+c)}while(o!==(o=a()/u)&&1!==o&&--s)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function l(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&ie.nodeName(e,t)?ie.merge([e],n):n}function f(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(c=ie.contains(o.ownerDocument,o),s=l(d.appendChild(o),"script"),c&&f(s),n)for(p=0;o=s[p++];)qe.test(o.type||"")&&n.push(o);return d}function d(){return!0}function h(){return!1}function g(){try{return Q.activeElement}catch(e){}}function v(e,t,n,r,i,o){var s,a;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(a in t)v(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=h;else if(!i)return this;return 1===o&&(s=i,i=function(e){return ie().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=ie.guid++)),e.each(function(){ie.event.add(this,t,i,r,n)})}function m(e,t){return ie.nodeName(e,"table")&&ie.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e:e}function y(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function x(e){var t=We.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function b(e,t){var n,r,i,o,s,a,u,c;if(1===t.nodeType){if(Se.hasData(e)&&(o=Se.access(e),s=Se.set(t,o),c=o.events)){delete s.handle,s.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof g&&!re.checkClone&&_e.test(g))return e.each(function(i){var o=e.eq(i);v&&(t[0]=g.call(this,i,o.html())),T(o,t,n,r)});if(d&&(i=p(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=ie.map(l(i,"script"),y),a=s.length;f")).appendTo(t.documentElement),t=ze[0].contentDocument,t.write(),t.close(),n=C(e,t),ze.detach()),Xe[e]=n),n}function k(e,t,n){var r,i,o,s,a=e.style;return n=n||Ye(e),n&&(s=n.getPropertyValue(t)||n[t],""!==s||ie.contains(e.ownerDocument,e)||(s=ie.style(e,t)),!re.pixelMarginRight()&&Ue.test(s)&&Ve.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o)),void 0!==s?s+"":s}function N(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function j(e){if(e in tt)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=et.length;n--;)if((e=et[n]+t)in tt)return e}function L(e,t,n){var r=je.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function A(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;o<4;o+=2)"margin"===n&&(s+=ie.css(e,n+Le[o],!0,i)),r?("content"===n&&(s-=ie.css(e,"padding"+Le[o],!0,i)),"margin"!==n&&(s-=ie.css(e,"border"+Le[o]+"Width",!0,i))):(s+=ie.css(e,"padding"+Le[o],!0,i),"padding"!==n&&(s+=ie.css(e,"border"+Le[o]+"Width",!0,i)));return s}function D(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,s=Ye(t),a="border-box"===ie.css(t,"boxSizing",!1,s);if(Q.msFullscreenElement&&e.top!==e&&t.getClientRects().length&&(o=Math.round(100*t.getBoundingClientRect()[n])),o<=0||null==o){if(o=k(t,n,s),(o<0||null==o)&&(o=t.style[n]),Ue.test(o))return o;i=a&&(re.boxSizingReliable()||o===t.style[n]),o=parseFloat(o)||0}return o+A(t,n,r||(a?"border":"content"),i,s)+"px"}function O(e,t){for(var n,r,i,o=[],s=0,a=e.length;s=0&&n=0},isPlainObject:function(e){return"object"===ie.type(e)&&!e.nodeType&&!ie.isWindow(e)&&!(e.constructor&&!ne.call(e.constructor.prototype,"isPrototypeOf"))},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ee[te.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;(e=ie.trim(e))&&(1===e.indexOf("use strict")?(t=Q.createElement("script"),t.text=e,Q.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(se,"ms-").replace(ae,ue)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;ib.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=A.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&void 0!==e.getElementsByTagName&&e}function c(){}function l(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function d(e,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(s[c]=f))}}else x=h(x===s?x.splice(v,x.length):x),o?o(null,s,x,u):J.apply(s,x)})}function v(e){for(var t,n,r,i=e.length,o=b.relative[e[0].type],s=o||b.relative[" "],a=o?1:0,u=f(function(e){return e===t},s,!0),c=f(function(e){return K(t,e)>-1},s,!0),d=[function(e,n,r){var i=!o&&(r||n!==k)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,i}];a1&&p(d),a>1&&l(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(oe,"$1"),n,a0,o=e.length>0,s=function(r,s,a,u,c){var l,f,p,d=0,g="0",v=r&&[],m=[],y=k,x=r||o&&b.find.TAG("*",c),w=I+=null==y?1:Math.random()||.1,T=x.length;for(c&&(k=s===A||s||c);g!==T&&null!=(l=x[g]);g++){if(o&&l){for(f=0,s||l.ownerDocument===A||(L(l),a=!O);p=e[f++];)if(p(l,s||A,a)){u.push(l);break}c&&(I=w)}i&&((l=!p&&l)&&d--,r&&v.push(l))}if(d+=g,i&&g!==d){for(f=0;p=n[f++];)p(v,m,s,a);if(r){if(d>0)for(;g--;)v[g]||m[g]||(m[g]=Y.call(u));m=h(m)}J.apply(u,m),c&&!r&&m.length>0&&d+n.length>1&&t.uniqueSort(u)}return c&&(I=w,k=y),v};return i?r(s):s}var y,x,b,w,T,S,C,E,k,N,j,L,A,D,O,q,$,F,H,P="sizzle"+1*new Date,R=e.document,I=0,M=0,_=n(),W=n(),B=n(),z=function(e,t){return e===t&&(j=!0),0},X=1<<31,V={}.hasOwnProperty,U=[],Y=U.pop,Q=U.push,J=U.push,G=U.slice,K=function(e,t){for(var n=0,r=e.length;n+~]|"+ee+")"+ee+"*"),ue=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),ce=new RegExp(re),le=new RegExp("^"+te+"$"),fe={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+re),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+Z+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},pe=/^(?:input|select|textarea|button)$/i,de=/^h\d$/i,he=/^[^{]+\{\s*\[native \w/,ge=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,me=/'|\\/g,ye=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),xe=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},be=function(){L()};try{J.apply(U=G.call(R.childNodes),R.childNodes),U[R.childNodes.length].nodeType}catch(e){J={apply:U.length?function(e,t){Q.apply(e,G.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=t.support={},T=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:R;return r!==A&&9===r.nodeType&&r.documentElement?(A=r,D=A.documentElement,O=!T(A),(n=A.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",be,!1):n.attachEvent&&n.attachEvent("onunload",be)),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(A.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=he.test(A.getElementsByClassName),x.getById=i(function(e){return D.appendChild(e).id=P,!A.getElementsByName||!A.getElementsByName(P).length}),x.getById?(b.find.ID=function(e,t){if(void 0!==t.getElementById&&O){var n=t.getElementById(e);return n?[n]:[]}},b.filter.ID=function(e){var t=e.replace(ye,xe);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var t=e.replace(ye,xe);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),b.find.TAG=x.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):x.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=x.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&O)return t.getElementsByClassName(e)},$=[],q=[],(x.qsa=he.test(A.querySelectorAll))&&(i(function(e){D.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||q.push("\\["+ee+"*(?:value|"+Z+")"),e.querySelectorAll("[id~="+P+"-]").length||q.push("~="),e.querySelectorAll(":checked").length||q.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||q.push(".#.+[+~]")}),i(function(e){var t=A.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&q.push("name"+ee+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),q.push(",.*:")})),(x.matchesSelector=he.test(F=D.matches||D.webkitMatchesSelector||D.mozMatchesSelector||D.oMatchesSelector||D.msMatchesSelector))&&i(function(e){x.disconnectedMatch=F.call(e,"div"),F.call(e,"[s!='']:x"),$.push("!=",re)}),q=q.length&&new RegExp(q.join("|")),$=$.length&&new RegExp($.join("|")),t=he.test(D.compareDocumentPosition),H=t||he.test(D.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},z=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===A||e.ownerDocument===R&&H(R,e)?-1:t===A||t.ownerDocument===R&&H(R,t)?1:N?K(N,e)-K(N,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t];if(!i||!o)return e===A?-1:t===A?1:i?-1:o?1:N?K(N,e)-K(N,t):0;if(i===o)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?s(a[r],u[r]):a[r]===R?-1:u[r]===R?1:0},A):A},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==A&&L(e),n=n.replace(ue,"='$1']"),x.matchesSelector&&O&&!B[n+" "]&&(!$||!$.test(n))&&(!q||!q.test(n)))try{var r=F.call(e,n);if(r||x.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,A,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==A&&L(e),H(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==A&&L(e);var n=b.attrHandle[t.toLowerCase()],r=n&&V.call(b.attrHandle,t.toLowerCase())?n(e,t,!O):void 0;return void 0!==r?r:x.attributes||!O?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!x.detectDuplicates,N=!x.sortStable&&e.slice(0),e.sort(z),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return N=null,e},w=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=w(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=w(t);return n},b=t.selectors={cacheLength:50,createPseudo:r,match:fe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ye,xe),e[3]=(e[3]||e[4]||e[5]||"").replace(ye,xe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return fe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ce.test(n)&&(t=S(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ye,xe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&_(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ie," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,p,d,h,g=o!==s?"nextSibling":"previousSibling",v=t.parentNode,m=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(v){if(o){for(;g;){for(p=t;p=p[g];)if(a?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?v.firstChild:v.lastChild],s&&y){for(p=v,f=p[P]||(p[P]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),c=l[e]||[],d=c[0]===I&&c[1],x=d&&c[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(x=d=0)||h.pop();)if(1===p.nodeType&&++x&&p===t){l[e]=[I,d,x];break}}else if(y&&(p=t,f=p[P]||(p[P]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),c=l[e]||[],d=c[0]===I&&c[1],x=d),!1===x)for(;(p=++d&&p&&p[g]||(x=d=0)||h.pop())&&((a?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++x||(y&&(f=p[P]||(p[P]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),l[e]=[I,x]),p!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=b.pseudos[e]||b.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],b.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=K(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=C(e.replace(oe,"$1"));return i[P]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(ye,xe),function(t){return(t.textContent||t.innerText||w(t)).indexOf(e)>-1}}),lang:r(function(e){return le.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(ye,xe).toLowerCase(),function(t){var n;do{if(n=O?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===D},focus:function(e){return e===A.activeElement&&(!A.hasFocus||A.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return de.test(e.nodeName)},input:function(e){return pe.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:a(function(){return[0]}),last:a(function(e,t){return[t-1]}),eq:a(function(e,t,n){return[n<0?n+t:n]}),even:a(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:a(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=o[0]).type&&x.getById&&9===t.nodeType&&O&&b.relative[o[1].type]){if(!(t=(b.find.ID(s.matches[0].replace(ye,xe),t)||[])[0]))return n;f&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=fe.needsContext.test(e)?0:o.length;i--&&(s=o[i],!b.relative[a=s.type]);)if((c=b.find[a])&&(r=c(s.matches[0].replace(ye,xe),ve.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&l(o)))return J.apply(n,r),n;break}}return(f||C(e,p))(r,t,!O,n,!t||ve.test(e)&&u(t.parentNode)||t),n},x.sortStable=P.split("").sort(z).join("")===P,x.detectDuplicates=!!j,L(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(A.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(Z,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);ie.find=ce,ie.expr=ce.selectors,ie.expr[":"]=ie.expr.pseudos,ie.uniqueSort=ie.unique=ce.uniqueSort,ie.text=ce.getText,ie.isXMLDoc=ce.isXML,ie.contains=ce.contains;var le=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&ie(e).is(n))break;r.push(e)}return r},fe=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},pe=ie.expr.match.needsContext,de=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,he=/^.[^:#\[\.,]*$/;ie.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ie.find.matchesSelector(r,e)?[r]:[]:ie.find.matches(e,ie.grep(t,function(e){return 1===e.nodeType}))},ie.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;if("string"!=typeof e)return this.pushStack(ie(e).filter(function(){for(t=0;t1?ie.unique(r):r),r.selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&pe.test(e)?ie(e):e||[],!1).length}});var ge,ve=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(ie.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||ge,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:ve.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ie?t[0]:t,ie.merge(this,ie.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:Q,!0)),de.test(r[1])&&ie.isPlainObject(t))for(r in t)ie.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=Q.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=Q,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ie.isFunction(e)?void 0!==n.ready?n.ready(e):e(ie):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ie.makeArray(e,this))}).prototype=ie.fn,ge=ie(Q);var me=/^(?:parents|prev(?:Until|All))/,ye={children:!0,contents:!0,next:!0,prev:!0};ie.fn.extend({has:function(e){var t=ie(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&ie.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ie.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?Z.call(ie(e),this[0]):Z.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ie.uniqueSort(ie.merge(this.get(),ie(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ie.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return le(e,"parentNode")},parentsUntil:function(e,t,n){return le(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return le(e,"nextSibling")},prevAll:function(e){return le(e,"previousSibling")},nextUntil:function(e,t,n){return le(e,"nextSibling",n)},prevUntil:function(e,t,n){return le(e,"previousSibling",n)},siblings:function(e){return fe((e.parentNode||{}).firstChild,e)},children:function(e){return fe(e.firstChild)},contents:function(e){return e.contentDocument||ie.merge([],e.childNodes)}},function(e,t){ie.fn[e]=function(n,r){var i=ie.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ie.filter(r,i)),this.length>1&&(ye[e]||ie.uniqueSort(i),me.test(e)&&i.reverse()),this.pushStack(i)}});var xe=/\S+/g;ie.Callbacks=function(e){e="string"==typeof e?o(e):ie.extend({},e);var t,n,r,i,s=[],a=[],u=-1,c=function(){for(i=e.once,r=t=!0;a.length;u=-1)for(n=a.shift();++u-1;)s.splice(n,1),n<=u&&u--}),this},has:function(e){return e?ie.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return i=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return i=a=[],n||(s=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},ie.extend({Deferred:function(e){var t=[["resolve","done",ie.Callbacks("once memory"),"resolved"],["reject","fail",ie.Callbacks("once memory"),"rejected"],["notify","progress",ie.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ie.Deferred(function(n){ie.each(t,function(t,o){var s=ie.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&ie.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ie.extend(e,r):r}},i={};return r.pipe=r.then,ie.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=J.call(arguments),s=o.length,a=1!==s||e&&ie.isFunction(e.promise)?s:0,u=1===a?e:ie.Deferred(),c=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?J.call(arguments):i,r===t?u.notifyWith(n,r):--a||u.resolveWith(n,r)}};if(s>1)for(t=new Array(s),n=new Array(s),r=new Array(s);i0||(be.resolveWith(Q,[ie]),ie.fn.triggerHandler&&(ie(Q).triggerHandler("ready"),ie(Q).off("ready"))))}}),ie.ready.promise=function(t){return be||(be=ie.Deferred(),"complete"===Q.readyState||"loading"!==Q.readyState&&!Q.documentElement.doScroll?e.setTimeout(ie.ready):(Q.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s))),be.promise(t)},ie.ready.promise();var we=function(e,t,n,r,i,o,s){var a=0,u=e.length,c=null==n;if("object"===ie.type(n)){i=!0;for(a in n)we(e,t,a,n[a],!0,o,s)}else if(void 0!==r&&(i=!0,ie.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ie(e),n)})),t))for(;a-1&&void 0!==n&&Ce.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Ce.remove(this,e)})}}),ie.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Se.get(e,t),n&&(!r||ie.isArray(n)?r=Se.access(e,t,ie.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ie.queue(e,t),r=n.length,i=n.shift(),o=ie._queueHooks(e,t),s=function(){ie.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Se.get(e,n)||Se.access(e,n,{empty:ie.Callbacks("once memory").add(function(){Se.remove(e,[t+"queue",n])})})}}),ie.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};$e.optgroup=$e.option,$e.tbody=$e.tfoot=$e.colgroup=$e.caption=$e.thead,$e.th=$e.td;var Fe=/<|&#?\w+;/;!function(){var e=Q.createDocumentFragment(),t=e.appendChild(Q.createElement("div")),n=Q.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),re.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",re.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var He=/^key/,Pe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Re=/^([^.]*)(?:\.(.+)|)/;ie.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,c,l,f,p,d,h,g,v=Se.get(e);if(v)for(n.handler&&(o=n,n=o.handler,i=o.selector),n.guid||(n.guid=ie.guid++),(u=v.events)||(u=v.events={}),(s=v.handle)||(s=v.handle=function(t){return void 0!==ie&&ie.event.triggered!==t.type?ie.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(xe)||[""],c=t.length;c--;)a=Re.exec(t[c])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d&&(f=ie.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ie.event.special[d]||{},l=ie.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ie.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||(p=u[d]=[],p.delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,s)||e.addEventListener&&e.addEventListener(d,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,l):p.push(l),ie.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,c,l,f,p,d,h,g,v=Se.hasData(e)&&Se.get(e);if(v&&(u=v.events)){for(t=(t||"").match(xe)||[""],c=t.length;c--;)if(a=Re.exec(t[c])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d){for(f=ie.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;o--;)l=p[o],!i&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(p.splice(o,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));s&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ie.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ie.event.remove(e,d+t[c],n,r,!0);ie.isEmptyObject(u)&&Se.remove(e,"handle events")}},dispatch:function(e){e=ie.event.fix(e);var t,n,r,i,o,s=[],a=J.call(arguments),u=(Se.get(this,"events")||{})[e.type]||[],c=ie.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,e)){for(s=ie.event.handlers.call(this,e,u),t=0;(i=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,void 0!==(r=((ie.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&(!0!==u.disabled||"click"!==e.type)){for(r=[],n=0;n-1:ie.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return a]*)\/>/gi,Me=/\s*$/g;ie.extend({htmlPrefilter:function(e){return e.replace(Ie,"<$1>")},clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=ie.contains(e.ownerDocument,e);if(!(re.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ie.isXMLDoc(e)))for(s=l(a),o=l(e),r=0,i=o.length;r0&&f(s,!u&&l(e,"script")),a},cleanData:function(e){for(var t,n,r,i=ie.event.special,o=0;void 0!==(n=e[o]);o++)if(Te(n)){if(t=n[Se.expando]){if(t.events)for(r in t.events)i[r]?ie.event.remove(n,r):ie.removeEvent(n,r,t.handle);n[Se.expando]=void 0}n[Ce.expando]&&(n[Ce.expando]=void 0)}}}),ie.fn.extend({domManip:T,detach:function(e){return S(this,e,!0)},remove:function(e){return S(this,e)},text:function(e){return we(this,function(e){return void 0===e?ie.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return T(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){m(this,e).appendChild(e)}})},prepend:function(){return T(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=m(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return T(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return T(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ie.cleanData(l(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ie.clone(this,e,t)})},html:function(e){return we(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Me.test(e)&&!$e[(Oe.exec(e)||["",""])[1].toLowerCase()]){e=ie.htmlPrefilter(e);try{for(;n1)},show:function(){return O(this,!0)},hide:function(){return O(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ae(this)?ie(this).show():ie(this).hide()})}}),ie.Tween=q,q.prototype={constructor:q,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ie.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ie.cssNumber[n]?"":"px")},cur:function(){var e=q.propHooks[this.prop];return e&&e.get?e.get(this):q.propHooks._default.get(this)},run:function(e){var t,n=q.propHooks[this.prop];return this.options.duration?this.pos=t=ie.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):q.propHooks._default.set(this),this}},q.prototype.init.prototype=q.prototype,q.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ie.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){ie.fx.step[e.prop]?ie.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[ie.cssProps[e.prop]]&&!ie.cssHooks[e.prop]?e.elem[e.prop]=e.now:ie.style(e.elem,e.prop,e.now+e.unit)}}},q.propHooks.scrollTop=q.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ie.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ie.fx=q.prototype.init,ie.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;ie.Animation=ie.extend(I,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return c(n.elem,e,je.exec(t),n),n}]},tweener:function(e,t){ie.isFunction(e)?(t=e,e=["*"]):e=e.match(xe);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){ie.removeAttr(this,e)})}}),ie.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?ie.prop(e,t,n):(1===o&&ie.isXMLDoc(e)||(t=t.toLowerCase(),i=ie.attrHooks[t]||(ie.expr.match.bool.test(t)?st:void 0)),void 0!==n?null===n?void ie.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=ie.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!re.radioValue&&"radio"===t&&ie.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(xe);if(o&&1===e.nodeType)for(;n=o[i++];)r=ie.propFix[n]||n,ie.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)}}),st={set:function(e,t,n){return!1===t?ie.removeAttr(e,n):e.setAttribute(n,n),n}},ie.each(ie.expr.match.bool.source.match(/\w+/g),function(e,t){var n=at[t]||ie.find.attr;at[t]=function(e,t,r){var i,o;return r||(o=at[t],at[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,at[t]=o),i}});var ut=/^(?:input|select|textarea|button)$/i,ct=/^(?:a|area)$/i;ie.fn.extend({prop:function(e,t){return we(this,ie.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[ie.propFix[e]||e]})}}),ie.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ie.isXMLDoc(e)||(t=ie.propFix[t]||t,i=ie.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ie.find.attr(e,"tabindex");return t?parseInt(t,10):ut.test(e.nodeName)||ct.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),re.optSelected||(ie.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),ie.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ie.propFix[this.toLowerCase()]=this});var lt=/[\t\r\n\f]/g;ie.fn.extend({addClass:function(e){var t,n,r,i,o,s,a,u=0;if(ie.isFunction(e))return this.each(function(t){ie(this).addClass(e.call(this,t,M(this)))});if("string"==typeof e&&e)for(t=e.match(xe)||[];n=this[u++];)if(i=M(n),r=1===n.nodeType&&(" "+i+" ").replace(lt," ")){for(s=0;o=t[s++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");a=ie.trim(r),i!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,i,o,s,a,u=0;if(ie.isFunction(e))return this.each(function(t){ie(this).removeClass(e.call(this,t,M(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(xe)||[];n=this[u++];)if(i=M(n),r=1===n.nodeType&&(" "+i+" ").replace(lt," ")){for(s=0;o=t[s++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");a=ie.trim(r),i!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):ie.isFunction(e)?this.each(function(n){ie(this).toggleClass(e.call(this,n,M(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=ie(this),o=e.match(xe)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=M(this),t&&Se.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Se.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+M(n)+" ").replace(lt," ").indexOf(t)>-1)return!0;return!1}});var ft=/\r/g;ie.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=ie.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ie(this).val()):e,null==i?i="":"number"==typeof i?i+="":ie.isArray(i)&&(i=ie.map(i,function(e){return null==e?"":e+""})),(t=ie.valHooks[this.type]||ie.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=ie.valHooks[i.type]||ie.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(ft,""):null==n?"":n)}}}),ie.extend({valHooks:{option:{get:function(e){return ie.trim(e.value)}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,s=o?null:[],a=o?i+1:r.length,u=i<0?a:o?i:0;u-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ie.each(["radio","checkbox"],function(){ie.valHooks[this]={set:function(e,t){if(ie.isArray(t))return e.checked=ie.inArray(ie(e).val(),t)>-1}},re.checkOn||(ie.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var pt=/^(?:focusinfocus|focusoutblur)$/;ie.extend(ie.event,{trigger:function(t,n,r,i){var o,s,a,u,c,l,f,p=[r||Q],d=ne.call(t,"type")?t.type:t,h=ne.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||Q,3!==r.nodeType&&8!==r.nodeType&&!pt.test(d+ie.event.triggered)&&(d.indexOf(".")>-1&&(h=d.split("."),d=h.shift(),h.sort()),c=d.indexOf(":")<0&&"on"+d,t=t[ie.expando]?t:new ie.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:ie.makeArray(n,[t]),f=ie.event.special[d]||{},i||!f.trigger||!1!==f.trigger.apply(r,n))){if(!i&&!f.noBubble&&!ie.isWindow(r)){for(u=f.delegateType||d,pt.test(u+d)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||Q)&&p.push(a.defaultView||a.parentWindow||e)}for(o=0;(s=p[o++])&&!t.isPropagationStopped();)t.type=o>1?u:f.bindType||d,l=(Se.get(s,"events")||{})[t.type]&&Se.get(s,"handle"),l&&l.apply(s,n),(l=c&&s[c])&&l.apply&&Te(s)&&(t.result=l.apply(s,n),!1===t.result&&t.preventDefault());return t.type=d,i||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(p.pop(),n)||!Te(r)||c&&ie.isFunction(r[d])&&!ie.isWindow(r)&&(a=r[c],a&&(r[c]=null),ie.event.triggered=d,r[d](),ie.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=ie.extend(new ie.Event,n,{type:e,isSimulated:!0});ie.event.trigger(r,null,t),r.isDefaultPrevented()&&n.preventDefault()}}),ie.fn.extend({trigger:function(e,t){return this.each(function(){ie.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ie.event.trigger(e,t,n,!0)}}),ie.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ie.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ie.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),re.focusin="onfocusin"in e,re.focusin||ie.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ie.event.simulate(t,e.target,ie.event.fix(e))};ie.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Se.access(r,t);i||r.addEventListener(e,n,!0),Se.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Se.access(r,t)-1;i?Se.access(r,t,i):(r.removeEventListener(e,n,!0),Se.remove(r,t))}}});var dt=e.location,ht=ie.now(),gt=/\?/;ie.parseJSON=function(e){return JSON.parse(e+"")},ie.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||ie.error("Invalid XML: "+t),n};var vt=/#.*$/,mt=/([?&])_=[^&]*/,yt=/^(.*?):[ \t]*([^\r\n]*)$/gm,xt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,bt=/^(?:GET|HEAD)$/,wt=/^\/\//,Tt={},St={},Ct="*/".concat("*"),Et=Q.createElement("a");Et.href=dt.href,ie.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:dt.href,type:"GET",isLocal:xt.test(dt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ct,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ie.parseJSON,"text xml":ie.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?B(B(e,ie.ajaxSettings),t):B(ie.ajaxSettings,e)},ajaxPrefilter:_(Tt),ajaxTransport:_(St),ajax:function(t,n){function r(t,n,r,a){var c,f,y,x,w,S=n;2!==b&&(b=2,u&&e.clearTimeout(u),i=void 0,s=a||"",T.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(x=z(p,T,r)),x=X(p,x,T,c),c?(p.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(ie.lastModified[o]=w),(w=T.getResponseHeader("etag"))&&(ie.etag[o]=w)),204===t||"HEAD"===p.type?S="nocontent":304===t?S="notmodified":(S=x.state,f=x.data,y=x.error,c=!y)):(y=S,!t&&S||(S="error",t<0&&(t=0))),T.status=t,T.statusText=(n||S)+"",c?g.resolveWith(d,[f,S,T]):g.rejectWith(d,[T,S,y]),T.statusCode(m),m=void 0,l&&h.trigger(c?"ajaxSuccess":"ajaxError",[T,p,c?f:y]),v.fireWith(d,[T,S]),l&&(h.trigger("ajaxComplete",[T,p]),--ie.active||ie.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,s,a,u,c,l,f,p=ie.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?ie(d):ie.event,g=ie.Deferred(),v=ie.Callbacks("once memory"),m=p.statusCode||{},y={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!a)for(a={};t=yt.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)m[t]=[m[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return i&&i.abort(t),r(0,t),this}};if(g.promise(T).complete=v.add,T.success=T.done,T.error=T.fail,p.url=((t||p.url||dt.href)+"").replace(vt,"").replace(wt,dt.protocol+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=ie.trim(p.dataType||"*").toLowerCase().match(xe)||[""],null==p.crossDomain){c=Q.createElement("a");try{c.href=p.url,c.href=c.href,p.crossDomain=Et.protocol+"//"+Et.host!=c.protocol+"//"+c.host}catch(e){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ie.param(p.data,p.traditional)),W(Tt,p,n,T),2===b)return T;l=ie.event&&p.global,l&&0==ie.active++&&ie.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!bt.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(gt.test(o)?"&":"?")+p.data,delete p.data),!1===p.cache&&(p.url=mt.test(o)?o.replace(mt,"$1_="+ht++):o+(gt.test(o)?"&":"?")+"_="+ht++)),p.ifModified&&(ie.lastModified[o]&&T.setRequestHeader("If-Modified-Since",ie.lastModified[o]),ie.etag[o]&&T.setRequestHeader("If-None-Match",ie.etag[o])),(p.data&&p.hasContent&&!1!==p.contentType||n.contentType)&&T.setRequestHeader("Content-Type",p.contentType),T.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Ct+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)T.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(!1===p.beforeSend.call(d,T,p)||2===b))return T.abort();w="abort";for(f in{success:1,error:1,complete:1})T[f](p[f]);if(i=W(St,p,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,p]),2===b)return T;p.async&&p.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},p.timeout));try{b=1,i.send(y,r)}catch(e){if(!(b<2))throw e;r(-1,e)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return ie.get(e,t,n,"json")},getScript:function(e,t){return ie.get(e,void 0,t,"script")}}),ie.each(["get","post"],function(e,t){ie[t]=function(e,n,r,i){return ie.isFunction(n)&&(i=i||r,r=n,n=void 0),ie.ajax(ie.extend({url:e,type:t,dataType:i,data:n,success:r},ie.isPlainObject(e)&&e))}}),ie._evalUrl=function(e){return ie.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},ie.fn.extend({wrapAll:function(e){var t;return ie.isFunction(e)?this.each(function(t){ie(this).wrapAll(e.call(this,t))}):(this[0]&&(t=ie(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return ie.isFunction(e)?this.each(function(t){ie(this).wrapInner(e.call(this,t))}):this.each(function(){var t=ie(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ie.isFunction(e);return this.each(function(n){ie(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ie.nodeName(this,"body")||ie(this).replaceWith(this.childNodes)}).end()}}),ie.expr.filters.hidden=function(e){return!ie.expr.filters.visible(e)},ie.expr.filters.visible=function(e){return e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0};var kt=/%20/g,Nt=/\[\]$/,jt=/\r?\n/g,Lt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;ie.param=function(e,t){var n,r=[],i=function(e,t){t=ie.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ie.ajaxSettings&&ie.ajaxSettings.traditional),ie.isArray(e)||e.jquery&&!ie.isPlainObject(e))ie.each(e,function(){i(this.name,this.value)});else for(n in e)V(n,e[n],t,i);return r.join("&").replace(kt,"+")},ie.fn.extend({serialize:function(){return ie.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ie.prop(this,"elements");return e?ie.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ie(this).is(":disabled")&&At.test(this.nodeName)&&!Lt.test(e)&&(this.checked||!De.test(e))}).map(function(e,t){var n=ie(this).val();return null==n?null:ie.isArray(n)?ie.map(n,function(e){return{name:t.name,value:e.replace(jt,"\r\n")}}):{name:t.name,value:n.replace(jt,"\r\n")}}).get()}}),ie.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Dt={0:200,1223:204},Ot=ie.ajaxSettings.xhr();re.cors=!!Ot&&"withCredentials"in Ot,re.ajax=Ot=!!Ot,ie.ajaxTransport(function(t){var n,r;if(re.cors||Ot&&!t.crossDomain)return{send:function(i,o){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(s in i)a.setRequestHeader(s,i[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Dt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),ie.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ie.globalEval(e),e}}}),ie.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ie.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=ie(" + + + + + + + + + @@ -74,7 +95,7 @@
  • - Speckle OpenApi Specs v1.0.0-beta + Speckle OpenApi Specs v1.0.0-beta
  • @@ -84,7 +105,7 @@
  • - Accounts + Accounts
      @@ -123,7 +144,7 @@
    • - Clients + Clients
        @@ -157,7 +178,7 @@
      • - Projects + Projects
          @@ -191,7 +212,7 @@
        • - Comments + Comments
            @@ -225,7 +246,7 @@
          • - Streams + Streams
              @@ -274,7 +295,7 @@
            • - Objects + Objects
                @@ -318,207 +339,207 @@
                • - ResourceBase + ResourceBase
                • - User + User
                • - AppClient + AppClient
                • - Project + Project
                • - Comment + Comment
                • - SpeckleStream + SpeckleStream
                • - Layer + Layer
                • - LayerProperties + LayerProperties
                • - ResponseBase + ResponseBase
                • - ResponseUser + ResponseUser
                • - ResponseClient + ResponseClient
                • - ResponseProject + ResponseProject
                • - ResponseComment + ResponseComment
                • - ResponseStream + ResponseStream
                • - ResponseObject + ResponseObject
                • - ResponseStreamClone + ResponseStreamClone
                • - ResponseStreamDiff + ResponseStreamDiff
                • - SpeckleObject + SpeckleObject
                • - SpeckleAbstract + SpeckleAbstract
                • - SpecklePlaceholder + SpecklePlaceholder
                • - SpeckleBoolean + SpeckleBoolean
                • - SpeckleNumber + SpeckleNumber
                • - SpeckleString + SpeckleString
                • - SpeckleInterval + SpeckleInterval
                • - SpeckleInterval2d + SpeckleInterval2d
                • - SpecklePoint + SpecklePoint
                • - SpeckleVector + SpeckleVector
                • - SpecklePlane + SpecklePlane
                • - SpeckleCircle + SpeckleCircle
                • - SpeckleArc + SpeckleArc
                • - SpeckleEllipse + SpeckleEllipse
                • - SpecklePolycurve + SpecklePolycurve
                • - SpeckleBox + SpeckleBox
                • - SpeckleLine + SpeckleLine
                • - SpecklePolyline + SpecklePolyline
                • - SpeckleCurve + SpeckleCurve
                • - SpeckleMesh + SpeckleMesh
                • - SpeckleBrep + SpeckleBrep
                • - SpeckleExtrusion + SpeckleExtrusion
                • - SpeckleAnnotation + SpeckleAnnotation
                • - SpeckleBlock + SpeckleBlock
                • @@ -537,7 +558,7 @@
                  -

                  Speckle OpenApi Specs v1.0.0-beta

                  +

                  Speckle OpenApi Specs v1.0.0-beta

                  Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

                  @@ -554,15 +575,16 @@

                  Speckle OpenApi Specs v1.0.0-beta

                  Email: SpeckleWorks Web: SpeckleWorks

                  Authentication

                    -
                  • API Key +
                  • API Key (JWT_Token_Auth)
                    • Parameter Name: Authorization, in: header.
                  -

                  Accounts

                  +

                  Accounts

                  Register, Login and more.

                  UserRegister

                  +

                  Code samples

                  @@ -571,28 +593,35 @@

                  UserRegister

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/accounts/register HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/accounts/register',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -605,18 +634,16 @@ 

                  UserRegister

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/register', { method: 'POST', @@ -628,20 +655,27 @@

                  UserRegister

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/accounts/register',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -649,11 +683,16 @@ 

                  UserRegister

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/accounts/register', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/accounts/register");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -668,6 +707,8 @@ 

                  UserRegister

                  } in.close(); System.out.println(response.toString()); + +

                  POST /accounts/register

                  UserRegister

                  @@ -685,14 +726,10 @@

                  UserRegister

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -711,83 +748,6 @@

                  Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  true No description
                  » _idbodystringfalseDatabase uuid.
                  » rolebodystringfalseUser's role. Defaults to "user".
                  » avatarbodystringfalseWe will need profile pics at one point.
                  » apitokenbodystringfalsea signed jwt token that expires in 1 year.
                  » tokenbodystringfalsea signed jwt token that expires in 1 day.
                  » emailbodystringfalseuser's email
                  » namebodystringfalseUser's given name
                  » surnamebodystringfalseUser's family name
                  » companybodystringfalseUsers's company
                  » loginsbody[object]falseit's a timestamp for each login.
                  »» datebodystringfalseNo description
                  @@ -796,52 +756,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "role": "string",
                  -    "avatar": "string",
                  -    "apitoken": "string",
                  -    "token": "string",
                  -    "email": "string",
                  -    "name": "string",
                  -    "surname": "string",
                  -    "company": "string",
                  -    "logins": [
                  -      {
                  -        "date": "string"
                  -      }
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "role": "string",
                  -      "avatar": "string",
                  -      "apitoken": "string",
                  -      "token": "string",
                  -      "email": "string",
                  -      "name": "string",
                  -      "surname": "string",
                  -      "company": "string",
                  -      "logins": [
                  -        {
                  -          "date": "string"
                  -        }
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -868,9 +794,10 @@

                  Responses

                  UserLogin

                  +

                  Code samples

                  @@ -879,28 +806,35 @@

                  UserLogin

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/accounts/login HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/accounts/login',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -913,18 +847,16 @@ 

                  UserLogin

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/login', { method: 'POST', @@ -936,20 +868,27 @@

                  UserLogin

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/accounts/login',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -957,11 +896,16 @@ 

                  UserLogin

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/accounts/login', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/accounts/login");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -976,6 +920,8 @@ 

                  UserLogin

                  } in.close(); System.out.println(response.toString()); + +

                  POST /accounts/login

                  UserLogin

                  @@ -993,14 +939,10 @@

                  UserLogin

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -1019,83 +961,6 @@

                  Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  true The only required elements are email and password.
                  » _idbodystringfalseDatabase uuid.
                  » rolebodystringfalseUser's role. Defaults to "user".
                  » avatarbodystringfalseWe will need profile pics at one point.
                  » apitokenbodystringfalsea signed jwt token that expires in 1 year.
                  » tokenbodystringfalsea signed jwt token that expires in 1 day.
                  » emailbodystringfalseuser's email
                  » namebodystringfalseUser's given name
                  » surnamebodystringfalseUser's family name
                  » companybodystringfalseUsers's company
                  » loginsbody[object]falseit's a timestamp for each login.
                  »» datebodystringfalseNo description
                  @@ -1104,52 +969,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "role": "string",
                  -    "avatar": "string",
                  -    "apitoken": "string",
                  -    "token": "string",
                  -    "email": "string",
                  -    "name": "string",
                  -    "surname": "string",
                  -    "company": "string",
                  -    "logins": [
                  -      {
                  -        "date": "string"
                  -      }
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "role": "string",
                  -      "avatar": "string",
                  -      "apitoken": "string",
                  -      "token": "string",
                  -      "email": "string",
                  -      "name": "string",
                  -      "surname": "string",
                  -      "company": "string",
                  -      "logins": [
                  -        {
                  -          "date": "string"
                  -        }
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -1176,9 +1007,10 @@

                  Responses

                  UserSearch

                  +

                  Code samples

                  @@ -1187,28 +1019,35 @@

                  UserSearch

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/accounts/search HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/accounts/search',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -1221,18 +1060,16 @@ 

                  UserSearch

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts/search', { method: 'POST', @@ -1244,20 +1081,27 @@

                  UserSearch

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/accounts/search',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -1265,11 +1109,16 @@ 

                  UserSearch

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/accounts/search', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/accounts/search");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -1284,6 +1133,8 @@ 

                  UserSearch

                  } in.close(); System.out.println(response.toString()); + +

                  POST /accounts/search

                  UserSearch

                  @@ -1301,14 +1152,10 @@

                  UserSearch

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -1327,166 +1174,56 @@

                  Parameters

                  + +
                  true No description
                  +
                  +

                  Example responses

                  +
                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": []
                  +}
                  +
                  +

                  Responses

                  + + - - - - - + + + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  » _idbodystringfalseDatabase uuid.StatusMeaningDescriptionSchema
                  » rolebodystringfalseUser's role. Defaults to "user".200OKNew user successfully registered.ResponseUser
                  » avatarbodystringfalseWe will need profile pics at one point.
                  » apitokenbodystringfalsea signed jwt token that expires in 1 year.
                  » tokenbodystringfalsea signed jwt token that expires in 1 day.
                  » emailbodystringfalseuser's email
                  » namebodystringfalseUser's given name
                  » surnamebodystringfalseUser's family name
                  » companybodystringfalseUsers's company
                  » loginsbody[object]falseit's a timestamp for each login.
                  »» datebodystringfalseNo description
                  -
                  -

                  Example responses

                  -
                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "role": "string",
                  -    "avatar": "string",
                  -    "apitoken": "string",
                  -    "token": "string",
                  -    "email": "string",
                  -    "name": "string",
                  -    "surname": "string",
                  -    "company": "string",
                  -    "logins": [
                  -      {
                  -        "date": "string"
                  -      }
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "role": "string",
                  -      "avatar": "string",
                  -      "apitoken": "string",
                  -      "token": "string",
                  -      "email": "string",
                  -      "name": "string",
                  -      "surname": "string",
                  -      "company": "string",
                  -      "logins": [
                  -        {
                  -          "date": "string"
                  -        }
                  -      ]
                  -    }
                  -  ]
                  -}
                  -
                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  -}
                  -
                  -

                  Responses

                  - - - - - - - - - - - - - - - - - - - - - + + + +
                  StatusMeaningDescriptionSchema
                  200OKNew user successfully registered.ResponseUser
                  400Bad RequestFail whale.ResponseBase400Bad RequestFail whale.ResponseBase

                  UserGet

                  +

                  Code samples

                  @@ -1494,39 +1231,51 @@

                  UserGet

                  curl -X GET http://localhost:3000/api/v1/accounts \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/accounts HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/accounts',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/accounts',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -1534,30 +1283,42 @@ 

                  UserGet

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/accounts',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/accounts', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/accounts");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -1572,6 +1333,8 @@ 

                  UserGet

                  } in.close(); System.out.println(response.toString()); + +

                  GET /accounts

                  UserGet

                  @@ -1582,52 +1345,18 @@

                  UserGet

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "role": "string",
                  -    "avatar": "string",
                  -    "apitoken": "string",
                  -    "token": "string",
                  -    "email": "string",
                  -    "name": "string",
                  -    "surname": "string",
                  -    "company": "string",
                  -    "logins": [
                  -      {
                  -        "date": "string"
                  -      }
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "role": "string",
                  -      "avatar": "string",
                  -      "apitoken": "string",
                  -      "token": "string",
                  -      "email": "string",
                  -      "name": "string",
                  -      "surname": "string",
                  -      "company": "string",
                  -      "logins": [
                  -        {
                  -          "date": "string"
                  -        }
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -1654,9 +1383,10 @@

                  Responses

                  UserUpdateProfile

                  +

                  Code samples

                  @@ -1665,28 +1395,35 @@

                  UserUpdateProfile

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/accounts HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/accounts',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -1699,18 +1436,16 @@ 

                  UserUpdateProfile

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/accounts', { method: 'PUT', @@ -1722,20 +1457,27 @@

                  UserUpdateProfile

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/accounts',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -1743,11 +1485,16 @@ 

                  UserUpdateProfile

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/accounts', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/accounts");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -1762,6 +1509,8 @@ 

                  UserUpdateProfile

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /accounts

                  UserUpdateProfile

                  @@ -1779,14 +1528,10 @@

                  UserUpdateProfile

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] + "logins": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -1805,83 +1550,6 @@

                  Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  true No description
                  » _idbodystringfalseDatabase uuid.
                  » rolebodystringfalseUser's role. Defaults to "user".
                  » avatarbodystringfalseWe will need profile pics at one point.
                  » apitokenbodystringfalsea signed jwt token that expires in 1 year.
                  » tokenbodystringfalsea signed jwt token that expires in 1 day.
                  » emailbodystringfalseuser's email
                  » namebodystringfalseUser's given name
                  » surnamebodystringfalseUser's family name
                  » companybodystringfalseUsers's company
                  » loginsbody[object]falseit's a timestamp for each login.
                  »» datebodystringfalseNo description
                  @@ -1891,21 +1559,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -1932,9 +1596,10 @@

                  Responses

                  UserGetProfileById

                  +

                  Code samples

                  @@ -1942,39 +1607,51 @@

                  UserGetProfileById

                  curl -X GET http://localhost:3000/api/v1/accounts/{userId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/accounts/{userId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/accounts/{userId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/accounts/{userId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -1982,30 +1659,42 @@ 

                  UserGetProfileById

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/accounts/{userId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/accounts/{userId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/accounts/{userId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -2020,11 +1709,13 @@ 

                  UserGetProfileById

                  } in.close(); System.out.println(response.toString()); + +

                  GET /accounts/{userId}

                  UserGetProfileById

                  Gets a user's profile.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -2051,52 +1742,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "role": "string",
                  -    "avatar": "string",
                  -    "apitoken": "string",
                  -    "token": "string",
                  -    "email": "string",
                  -    "name": "string",
                  -    "surname": "string",
                  -    "company": "string",
                  -    "logins": [
                  -      {
                  -        "date": "string"
                  -      }
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "role": "string",
                  -      "avatar": "string",
                  -      "apitoken": "string",
                  -      "token": "string",
                  -      "email": "string",
                  -      "name": "string",
                  -      "surname": "string",
                  -      "company": "string",
                  -      "logins": [
                  -        {
                  -          "date": "string"
                  -        }
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -2123,11 +1780,12 @@

                  Responses

                  -

                  Clients

                  +

                  Clients

                  Create, get and update application clients.

                  ClientGetAll

                  +

                  Code samples

                  @@ -2135,39 +1793,51 @@

                  ClientGetAll

                  curl -X GET http://localhost:3000/api/v1/clients \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/clients HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/clients',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/clients',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -2175,30 +1845,42 @@ 

                  ClientGetAll

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/clients',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/clients', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/clients");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -2213,6 +1895,8 @@ 

                  ClientGetAll

                  } in.close(); System.out.println(response.toString()); + +

                  GET /clients

                  ClientGetAll

                  @@ -2223,66 +1907,18 @@

                  ClientGetAll

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "role": "string",
                  -    "documentGuid": "string",
                  -    "documentName": "string",
                  -    "documentType": "string",
                  -    "documentLocation": "string",
                  -    "streamId": "string",
                  -    "online": true
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "role": "string",
                  -      "documentGuid": "string",
                  -      "documentName": "string",
                  -      "documentType": "string",
                  -      "documentLocation": "string",
                  -      "streamId": "string",
                  -      "online": true
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -2309,9 +1945,10 @@

                  Responses

                  ClientCreate

                  +

                  Code samples

                  @@ -2320,28 +1957,35 @@

                  ClientCreate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/clients HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/clients',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -2349,15 +1993,9 @@ 

                  ClientCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -2371,8 +2009,10 @@

                  ClientCreate

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients', { method: 'POST', @@ -2384,20 +2024,27 @@

                  ClientCreate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/clients',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -2405,11 +2052,16 @@ 

                  ClientCreate

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/clients', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/clients");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -2424,6 +2076,8 @@ 

                  ClientCreate

                  } in.close(); System.out.println(response.toString()); + +

                  POST /clients

                  ClientCreate

                  @@ -2436,15 +2090,9 @@

                  ClientCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -2455,7 +2103,7 @@

                  ClientCreate

                  "online": true } -

                  Parameters

                  +

                  Parameters

                  @@ -2482,66 +2130,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "role": "string",
                  -    "documentGuid": "string",
                  -    "documentName": "string",
                  -    "documentType": "string",
                  -    "documentLocation": "string",
                  -    "streamId": "string",
                  -    "online": true
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "role": "string",
                  -      "documentGuid": "string",
                  -      "documentName": "string",
                  -      "documentType": "string",
                  -      "documentLocation": "string",
                  -      "streamId": "string",
                  -      "online": true
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -2568,9 +2168,10 @@

                  Responses

                  ClientUpdate

                  +

                  Code samples

                  @@ -2579,28 +2180,35 @@

                  ClientUpdate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/clients/{clientId} HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/clients/{clientId}',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -2608,15 +2216,9 @@ 

                  ClientUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -2630,8 +2232,10 @@

                  ClientUpdate

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/clients/{clientId}', { method: 'PUT', @@ -2643,20 +2247,27 @@

                  ClientUpdate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/clients/{clientId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -2664,11 +2275,16 @@ 

                  ClientUpdate

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/clients/{clientId}', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/clients/{clientId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -2683,6 +2299,8 @@ 

                  ClientUpdate

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /clients/{clientId}

                  ClientUpdate

                  @@ -2695,15 +2313,9 @@

                  ClientUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "role": "string", "documentGuid": "string", @@ -2714,7 +2326,7 @@

                  ClientUpdate

                  "online": true } -

                  Parameters

                  +

                  Parameters

                  @@ -2748,66 +2360,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "role": "string",
                  -    "documentGuid": "string",
                  -    "documentName": "string",
                  -    "documentType": "string",
                  -    "documentLocation": "string",
                  -    "streamId": "string",
                  -    "online": true
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "role": "string",
                  -      "documentGuid": "string",
                  -      "documentName": "string",
                  -      "documentType": "string",
                  -      "documentLocation": "string",
                  -      "streamId": "string",
                  -      "online": true
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -2834,9 +2398,10 @@

                  Responses

                  ClientGet

                  +

                  Code samples

                  @@ -2844,39 +2409,51 @@

                  ClientGet

                  curl -X GET http://localhost:3000/api/v1/clients/{clientId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/clients/{clientId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/clients/{clientId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/clients/{clientId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -2884,30 +2461,42 @@ 

                  ClientGet

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/clients/{clientId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/clients/{clientId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/clients/{clientId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -2922,11 +2511,13 @@ 

                  ClientGet

                  } in.close(); System.out.println(response.toString()); + +

                  GET /clients/{clientId}

                  ClientGet

                  Get a client

                  -

                  Parameters

                  +

                  Parameters

                  @@ -2953,66 +2544,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "role": "string",
                  -    "documentGuid": "string",
                  -    "documentName": "string",
                  -    "documentType": "string",
                  -    "documentLocation": "string",
                  -    "streamId": "string",
                  -    "online": true
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "role": "string",
                  -      "documentGuid": "string",
                  -      "documentName": "string",
                  -      "documentType": "string",
                  -      "documentLocation": "string",
                  -      "streamId": "string",
                  -      "online": true
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -3039,9 +2582,10 @@

                  Responses

                  ClientDelete

                  +

                  Code samples

                  @@ -3049,39 +2593,51 @@

                  ClientDelete

                  curl -X DELETE http://localhost:3000/api/v1/clients/{clientId} \ -H 'Accept: application/json' +
                  DELETE http://localhost:3000/api/v1/clients/{clientId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/clients/{clientId}',
                     method: 'delete',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/clients/{clientId}',
                   {
                     method: 'DELETE',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -3089,30 +2645,42 @@ 

                  ClientDelete

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.delete 'http://localhost:3000/api/v1/clients/{clientId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.delete('http://localhost:3000/api/v1/clients/{clientId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/clients/{clientId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -3127,11 +2695,13 @@ 

                  ClientDelete

                  } in.close(); System.out.println(response.toString()); + +

                  DELETE /clients/{clientId}

                  ClientDelete

                  Deletes a client

                  -

                  Parameters

                  +

                  Parameters

                  @@ -3159,21 +2729,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -3200,11 +2766,12 @@

                  Responses

                  -

                  Projects

                  +

                  Projects

                  Create, get and update projects.

                  ProjectGetAll

                  +

                  Code samples

                  @@ -3212,39 +2779,51 @@

                  ProjectGetAll

                  curl -X GET http://localhost:3000/api/v1/projects \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/projects HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/projects',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/projects',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -3252,30 +2831,42 @@ 

                  ProjectGetAll

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/projects',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/projects', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/projects");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -3290,6 +2881,8 @@ 

                  ProjectGetAll

                  } in.close(); System.out.println(response.toString()); + +

                  GET /projects

                  ProjectGetAll

                  @@ -3300,72 +2893,18 @@

                  ProjectGetAll

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "name": "string",
                  -    "users": [
                  -      "string"
                  -    ],
                  -    "streams": [
                  -      "string"
                  -    ],
                  -    "subProjects": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "name": "string",
                  -      "users": [
                  -        "string"
                  -      ],
                  -      "streams": [
                  -        "string"
                  -      ],
                  -      "subProjects": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -3392,9 +2931,10 @@

                  Responses

                  ProjectCreate

                  +

                  Code samples

                  @@ -3403,28 +2943,35 @@

                  ProjectCreate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/projects HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/projects',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -3432,33 +2979,24 @@ 

                  ProjectCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects', { method: 'POST', @@ -3470,20 +3008,27 @@

                  ProjectCreate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/projects',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -3491,11 +3036,16 @@ 

                  ProjectCreate

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/projects', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/projects");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -3510,9 +3060,11 @@ 

                  ProjectCreate

                  } in.close(); System.out.println(response.toString()); + +

                  POST /projects

                  -

                  ProjectCreate

                  +

                  Create

                  Create a project

                  Body parameter

                  @@ -3522,29 +3074,18 @@

                  ProjectCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -3571,72 +3112,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "name": "string",
                  -    "users": [
                  -      "string"
                  -    ],
                  -    "streams": [
                  -      "string"
                  -    ],
                  -    "subProjects": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "name": "string",
                  -      "users": [
                  -        "string"
                  -      ],
                  -      "streams": [
                  -        "string"
                  -      ],
                  -      "subProjects": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -3663,9 +3150,10 @@

                  Responses

                  ProjectUpdate

                  +

                  Code samples

                  @@ -3674,28 +3162,35 @@

                  ProjectUpdate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/projects/{projectId} HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/projects/{projectId}',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -3703,33 +3198,24 @@ 

                  ProjectUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/projects/{projectId}', { method: 'PUT', @@ -3741,20 +3227,27 @@

                  ProjectUpdate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/projects/{projectId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -3762,11 +3255,16 @@ 

                  ProjectUpdate

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/projects/{projectId}', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/projects/{projectId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -3781,6 +3279,8 @@ 

                  ProjectUpdate

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /projects/{projectId}

                  ProjectUpdate

                  @@ -3793,29 +3293,18 @@

                  ProjectUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "name": "string", - "users": [ - "string" - ], - "streams": [ - "string" - ], - "subProjects": [ - "string" - ] + "number": "string", + "users": [], + "streams": [], + "subProjects": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -3849,72 +3338,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "name": "string",
                  -    "users": [
                  -      "string"
                  -    ],
                  -    "streams": [
                  -      "string"
                  -    ],
                  -    "subProjects": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "name": "string",
                  -      "users": [
                  -        "string"
                  -      ],
                  -      "streams": [
                  -        "string"
                  -      ],
                  -      "subProjects": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -3941,9 +3376,10 @@

                  Responses

                  ProjectGet

                  +

                  Code samples

                  @@ -3951,39 +3387,51 @@

                  ProjectGet

                  curl -X GET http://localhost:3000/api/v1/projects/{projectId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/projects/{projectId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/projects/{projectId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/projects/{projectId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -3991,30 +3439,42 @@ 

                  ProjectGet

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/projects/{projectId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/projects/{projectId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/projects/{projectId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -4029,11 +3489,13 @@ 

                  ProjectGet

                  } in.close(); System.out.println(response.toString()); + +

                  GET /projects/{projectId}

                  ProjectGet

                  Get a project

                  -

                  Parameters

                  +

                  Parameters

                  @@ -4060,72 +3522,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "name": "string",
                  -    "users": [
                  -      "string"
                  -    ],
                  -    "streams": [
                  -      "string"
                  -    ],
                  -    "subProjects": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "name": "string",
                  -      "users": [
                  -        "string"
                  -      ],
                  -      "streams": [
                  -        "string"
                  -      ],
                  -      "subProjects": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -4152,9 +3560,10 @@

                  Responses

                  ProjectDelete

                  +

                  Code samples

                  @@ -4162,39 +3571,51 @@

                  ProjectDelete

                  curl -X DELETE http://localhost:3000/api/v1/projects/{projectId} \ -H 'Accept: application/json' +
                  DELETE http://localhost:3000/api/v1/projects/{projectId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/projects/{projectId}',
                     method: 'delete',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/projects/{projectId}',
                   {
                     method: 'DELETE',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -4202,30 +3623,42 @@ 

                  ProjectDelete

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.delete 'http://localhost:3000/api/v1/projects/{projectId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.delete('http://localhost:3000/api/v1/projects/{projectId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/projects/{projectId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -4240,11 +3673,13 @@ 

                  ProjectDelete

                  } in.close(); System.out.println(response.toString()); + +

                  DELETE /projects/{projectId}

                  ProjectDelete

                  Deletes a project

                  -

                  Parameters

                  +

                  Parameters

                  @@ -4272,21 +3707,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -4313,11 +3744,12 @@

                  Responses

                  -

                  Comments

                  +

                  Comments

                  Create, get and update comments.

                  CommentCreate

                  +

                  Code samples

                  @@ -4326,28 +3758,35 @@

                  CommentCreate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -4355,28 +3794,15 @@ 

                  CommentCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" }'
                  ; @@ -4384,8 +3810,10 @@

                  CommentCreate

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', { method: 'POST', @@ -4397,20 +3825,27 @@

                  CommentCreate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -4418,11 +3853,16 @@ 

                  CommentCreate

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -4437,6 +3877,8 @@ 

                  CommentCreate

                  } in.close(); System.out.println(response.toString()); + +

                  POST /comments/{resourceType}/{resourceId}

                  CommentCreate

                  @@ -4449,33 +3891,20 @@

                  CommentCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" } -

                  Parameters

                  +

                  Parameters

                  @@ -4543,80 +3972,18 @@

                  Enumerated Values

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "resource": {
                  -      "resourceType": "string",
                  -      "resourceId": "string"
                  -    },
                  -    "text": "string",
                  -    "assignedTo": [
                  -      "string"
                  -    ],
                  -    "closed": true,
                  -    "labels": [
                  -      "string"
                  -    ],
                  -    "view": {},
                  -    "screenshot": "string"
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "resource": {
                  -        "resourceType": "string",
                  -        "resourceId": "string"
                  -      },
                  -      "text": "string",
                  -      "assignedTo": [
                  -        "string"
                  -      ],
                  -      "closed": true,
                  -      "labels": [
                  -        "string"
                  -      ],
                  -      "view": {},
                  -      "screenshot": "string"
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -4643,9 +4010,10 @@

                  Responses

                  CommentGetFromResource

                  +

                  Code samples

                  @@ -4653,39 +4021,51 @@

                  CommentGetFromResource

                  curl -X GET http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/comments/{resourceType}/{resourceId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -4693,30 +4073,42 @@ 

                  CommentGetFromResource

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/comments/{resourceType}/{resourceId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -4731,11 +4123,13 @@ 

                  CommentGetFromResource

                  } in.close(); System.out.println(response.toString()); + +

                  GET /comments/{resourceType}/{resourceId}

                  CommentGetFromResource

                  Gets the comments from a resource.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -4796,80 +4190,18 @@

                  Enumerated Values

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "resource": {
                  -      "resourceType": "string",
                  -      "resourceId": "string"
                  -    },
                  -    "text": "string",
                  -    "assignedTo": [
                  -      "string"
                  -    ],
                  -    "closed": true,
                  -    "labels": [
                  -      "string"
                  -    ],
                  -    "view": {},
                  -    "screenshot": "string"
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "resource": {
                  -        "resourceType": "string",
                  -        "resourceId": "string"
                  -      },
                  -      "text": "string",
                  -      "assignedTo": [
                  -        "string"
                  -      ],
                  -      "closed": true,
                  -      "labels": [
                  -        "string"
                  -      ],
                  -      "view": {},
                  -      "screenshot": "string"
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -4896,9 +4228,10 @@

                  Responses

                  CommentGet

                  +

                  Code samples

                  @@ -4906,39 +4239,51 @@

                  CommentGet

                  curl -X GET http://localhost:3000/api/v1/comments/{commentId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/comments/{commentId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/comments/{commentId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/comments/{commentId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -4946,30 +4291,42 @@ 

                  CommentGet

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/comments/{commentId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/comments/{commentId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/comments/{commentId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -4984,11 +4341,13 @@ 

                  CommentGet

                  } in.close(); System.out.println(response.toString()); + +

                  GET /comments/{commentId}

                  CommentGet

                  Gets a specific comment.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -5015,80 +4374,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "resource": {
                  -      "resourceType": "string",
                  -      "resourceId": "string"
                  -    },
                  -    "text": "string",
                  -    "assignedTo": [
                  -      "string"
                  -    ],
                  -    "closed": true,
                  -    "labels": [
                  -      "string"
                  -    ],
                  -    "view": {},
                  -    "screenshot": "string"
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "resource": {
                  -        "resourceType": "string",
                  -        "resourceId": "string"
                  -      },
                  -      "text": "string",
                  -      "assignedTo": [
                  -        "string"
                  -      ],
                  -      "closed": true,
                  -      "labels": [
                  -        "string"
                  -      ],
                  -      "view": {},
                  -      "screenshot": "string"
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -5115,9 +4412,10 @@

                  Responses

                  CommentUpdate

                  +

                  Code samples

                  @@ -5126,28 +4424,35 @@

                  CommentUpdate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/comments/{commentId} HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/comments/{commentId}',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -5155,28 +4460,15 @@ 

                  CommentUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" }'
                  ; @@ -5184,8 +4476,10 @@

                  CommentUpdate

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/comments/{commentId}', { method: 'PUT', @@ -5197,20 +4491,27 @@

                  CommentUpdate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/comments/{commentId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -5218,11 +4519,16 @@ 

                  CommentUpdate

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/comments/{commentId}', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/comments/{commentId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -5237,6 +4543,8 @@ 

                  CommentUpdate

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /comments/{commentId}

                  CommentUpdate

                  @@ -5249,33 +4557,20 @@

                  CommentUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, - "resource": { - "resourceType": "string", - "resourceId": "string" - }, + "resource": {}, "text": "string", - "assignedTo": [ - "string" - ], + "assignedTo": [], "closed": true, - "labels": [ - "string" - ], + "labels": [], "view": {}, "screenshot": "string" } -

                  Parameters

                  +

                  Parameters

                  @@ -5310,21 +4605,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -5351,9 +4642,10 @@

                  Responses

                  CommentDelete

                  +

                  Code samples

                  @@ -5361,39 +4653,51 @@

                  CommentDelete

                  curl -X DELETE http://localhost:3000/api/v1/comments/{commentId} \ -H 'Accept: application/json' +
                  DELETE http://localhost:3000/api/v1/comments/{commentId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/comments/{commentId}',
                     method: 'delete',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/comments/{commentId}',
                   {
                     method: 'DELETE',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -5401,30 +4705,42 @@ 

                  CommentDelete

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.delete 'http://localhost:3000/api/v1/comments/{commentId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.delete('http://localhost:3000/api/v1/comments/{commentId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/comments/{commentId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -5439,11 +4755,13 @@ 

                  CommentDelete

                  } in.close(); System.out.println(response.toString()); + +

                  DELETE /comments/{commentId}

                  CommentDelete

                  Deletes a specific comment.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -5471,21 +4789,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -5512,11 +4826,12 @@

                  Responses

                  -

                  Streams

                  +

                  Streams

                  Create, get and update streams.

                  StreamsGetAll

                  +

                  Code samples

                  @@ -5524,39 +4839,51 @@

                  StreamsGetAll

                  curl -X GET http://localhost:3000/api/v1/streams \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/streams HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/streams',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -5564,30 +4891,42 @@ 

                  StreamsGetAll

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/streams',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/streams', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/streams");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -5602,6 +4941,8 @@ 

                  StreamsGetAll

                  } in.close(); System.out.println(response.toString()); + +

                  GET /streams

                  StreamsGetAll

                  @@ -5612,194 +4953,18 @@

                  StreamsGetAll

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "streamId": "string",
                  -    "name": "string",
                  -    "objects": [
                  -      {
                  -        "_id": "string",
                  -        "owner": "string",
                  -        "private": true,
                  -        "anonymousComments": true,
                  -        "canRead": [
                  -          "string"
                  -        ],
                  -        "canWrite": [
                  -          "string"
                  -        ],
                  -        "comments": [
                  -          "string"
                  -        ],
                  -        "deleted": false,
                  -        "type": "Null",
                  -        "hash": "hash",
                  -        "geometryHash": "Type.hash",
                  -        "applicationId": "GUID",
                  -        "properties": {},
                  -        "parent": "string",
                  -        "children": [
                  -          "string"
                  -        ],
                  -        "ancestors": [
                  -          "string"
                  -        ],
                  -        "transform": [
                  -          0
                  -        ]
                  -      }
                  -    ],
                  -    "layers": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "baseProperties": {},
                  -    "globalMeasures": {},
                  -    "isComputedResult": false,
                  -    "viewerLayers": [
                  -      {}
                  -    ],
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "streamId": "string",
                  -      "name": "string",
                  -      "objects": [
                  -        {
                  -          "_id": "string",
                  -          "owner": "string",
                  -          "private": true,
                  -          "anonymousComments": true,
                  -          "canRead": [
                  -            "string"
                  -          ],
                  -          "canWrite": [
                  -            "string"
                  -          ],
                  -          "comments": [
                  -            "string"
                  -          ],
                  -          "deleted": false,
                  -          "type": "Null",
                  -          "hash": "hash",
                  -          "geometryHash": "Type.hash",
                  -          "applicationId": "GUID",
                  -          "properties": {},
                  -          "parent": "string",
                  -          "children": [
                  -            "string"
                  -          ],
                  -          "ancestors": [
                  -            "string"
                  -          ],
                  -          "transform": [
                  -            0
                  -          ]
                  -        }
                  -      ],
                  -      "layers": [
                  -        {
                  -          "name": "string",
                  -          "guid": "string",
                  -          "orderIndex": 0,
                  -          "startIndex": 0,
                  -          "objectCount": 0,
                  -          "topology": "string",
                  -          "properties": {
                  -            "color": {
                  -              "a": 1,
                  -              "hex": "string"
                  -            },
                  -            "visible": true,
                  -            "pointsize": 0,
                  -            "linewidth": 0,
                  -            "shininess": 0,
                  -            "smooth": true,
                  -            "showEdges": true,
                  -            "wireframe": true
                  -          }
                  -        }
                  -      ],
                  -      "baseProperties": {},
                  -      "globalMeasures": {},
                  -      "isComputedResult": false,
                  -      "viewerLayers": [
                  -        {}
                  -      ],
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -5826,9 +4991,10 @@

                  Responses

                  StreamCreate

                  +

                  Code samples

                  @@ -5837,28 +5003,35 @@

                  StreamCreate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/streams HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -5866,94 +5039,30 @@ 

                  StreamCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams', { method: 'POST', @@ -5965,20 +5074,27 @@

                  StreamCreate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/streams',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -5986,11 +5102,16 @@ 

                  StreamCreate

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/streams', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/streams");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -6005,6 +5126,8 @@ 

                  StreamCreate

                  } in.close(); System.out.println(response.toString()); + +

                  POST /streams

                  StreamCreate

                  @@ -6017,90 +5140,24 @@

                  StreamCreate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -6127,194 +5184,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "streamId": "string",
                  -    "name": "string",
                  -    "objects": [
                  -      {
                  -        "_id": "string",
                  -        "owner": "string",
                  -        "private": true,
                  -        "anonymousComments": true,
                  -        "canRead": [
                  -          "string"
                  -        ],
                  -        "canWrite": [
                  -          "string"
                  -        ],
                  -        "comments": [
                  -          "string"
                  -        ],
                  -        "deleted": false,
                  -        "type": "Null",
                  -        "hash": "hash",
                  -        "geometryHash": "Type.hash",
                  -        "applicationId": "GUID",
                  -        "properties": {},
                  -        "parent": "string",
                  -        "children": [
                  -          "string"
                  -        ],
                  -        "ancestors": [
                  -          "string"
                  -        ],
                  -        "transform": [
                  -          0
                  -        ]
                  -      }
                  -    ],
                  -    "layers": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "baseProperties": {},
                  -    "globalMeasures": {},
                  -    "isComputedResult": false,
                  -    "viewerLayers": [
                  -      {}
                  -    ],
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "streamId": "string",
                  -      "name": "string",
                  -      "objects": [
                  -        {
                  -          "_id": "string",
                  -          "owner": "string",
                  -          "private": true,
                  -          "anonymousComments": true,
                  -          "canRead": [
                  -            "string"
                  -          ],
                  -          "canWrite": [
                  -            "string"
                  -          ],
                  -          "comments": [
                  -            "string"
                  -          ],
                  -          "deleted": false,
                  -          "type": "Null",
                  -          "hash": "hash",
                  -          "geometryHash": "Type.hash",
                  -          "applicationId": "GUID",
                  -          "properties": {},
                  -          "parent": "string",
                  -          "children": [
                  -            "string"
                  -          ],
                  -          "ancestors": [
                  -            "string"
                  -          ],
                  -          "transform": [
                  -            0
                  -          ]
                  -        }
                  -      ],
                  -      "layers": [
                  -        {
                  -          "name": "string",
                  -          "guid": "string",
                  -          "orderIndex": 0,
                  -          "startIndex": 0,
                  -          "objectCount": 0,
                  -          "topology": "string",
                  -          "properties": {
                  -            "color": {
                  -              "a": 1,
                  -              "hex": "string"
                  -            },
                  -            "visible": true,
                  -            "pointsize": 0,
                  -            "linewidth": 0,
                  -            "shininess": 0,
                  -            "smooth": true,
                  -            "showEdges": true,
                  -            "wireframe": true
                  -          }
                  -        }
                  -      ],
                  -      "baseProperties": {},
                  -      "globalMeasures": {},
                  -      "isComputedResult": false,
                  -      "viewerLayers": [
                  -        {}
                  -      ],
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -6341,9 +5222,10 @@

                  Responses

                  StreamGet

                  +

                  Code samples

                  @@ -6351,39 +5233,51 @@

                  StreamGet

                  curl -X GET http://localhost:3000/api/v1/streams/{streamId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/streams/{streamId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams/{streamId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/streams/{streamId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -6391,30 +5285,42 @@ 

                  StreamGet

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/streams/{streamId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/streams/{streamId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -6429,11 +5335,13 @@ 

                  StreamGet

                  } in.close(); System.out.println(response.toString()); + +

                  GET /streams/{streamId}

                  StreamGet

                  Gets a specific stream.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -6467,194 +5375,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "streamId": "string",
                  -    "name": "string",
                  -    "objects": [
                  -      {
                  -        "_id": "string",
                  -        "owner": "string",
                  -        "private": true,
                  -        "anonymousComments": true,
                  -        "canRead": [
                  -          "string"
                  -        ],
                  -        "canWrite": [
                  -          "string"
                  -        ],
                  -        "comments": [
                  -          "string"
                  -        ],
                  -        "deleted": false,
                  -        "type": "Null",
                  -        "hash": "hash",
                  -        "geometryHash": "Type.hash",
                  -        "applicationId": "GUID",
                  -        "properties": {},
                  -        "parent": "string",
                  -        "children": [
                  -          "string"
                  -        ],
                  -        "ancestors": [
                  -          "string"
                  -        ],
                  -        "transform": [
                  -          0
                  -        ]
                  -      }
                  -    ],
                  -    "layers": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "baseProperties": {},
                  -    "globalMeasures": {},
                  -    "isComputedResult": false,
                  -    "viewerLayers": [
                  -      {}
                  -    ],
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "streamId": "string",
                  -      "name": "string",
                  -      "objects": [
                  -        {
                  -          "_id": "string",
                  -          "owner": "string",
                  -          "private": true,
                  -          "anonymousComments": true,
                  -          "canRead": [
                  -            "string"
                  -          ],
                  -          "canWrite": [
                  -            "string"
                  -          ],
                  -          "comments": [
                  -            "string"
                  -          ],
                  -          "deleted": false,
                  -          "type": "Null",
                  -          "hash": "hash",
                  -          "geometryHash": "Type.hash",
                  -          "applicationId": "GUID",
                  -          "properties": {},
                  -          "parent": "string",
                  -          "children": [
                  -            "string"
                  -          ],
                  -          "ancestors": [
                  -            "string"
                  -          ],
                  -          "transform": [
                  -            0
                  -          ]
                  -        }
                  -      ],
                  -      "layers": [
                  -        {
                  -          "name": "string",
                  -          "guid": "string",
                  -          "orderIndex": 0,
                  -          "startIndex": 0,
                  -          "objectCount": 0,
                  -          "topology": "string",
                  -          "properties": {
                  -            "color": {
                  -              "a": 1,
                  -              "hex": "string"
                  -            },
                  -            "visible": true,
                  -            "pointsize": 0,
                  -            "linewidth": 0,
                  -            "shininess": 0,
                  -            "smooth": true,
                  -            "showEdges": true,
                  -            "wireframe": true
                  -          }
                  -        }
                  -      ],
                  -      "baseProperties": {},
                  -      "globalMeasures": {},
                  -      "isComputedResult": false,
                  -      "viewerLayers": [
                  -        {}
                  -      ],
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -6681,9 +5413,10 @@

                  Responses

                  StreamUpdate

                  +

                  Code samples

                  @@ -6692,28 +5425,35 @@

                  StreamUpdate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/streams/{streamId} HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams/{streamId}',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -6721,94 +5461,30 @@ 

                  StreamUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/streams/{streamId}', { method: 'PUT', @@ -6820,20 +5496,27 @@

                  StreamUpdate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/streams/{streamId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -6841,11 +5524,16 @@ 

                  StreamUpdate

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/streams/{streamId}', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -6860,6 +5548,8 @@ 

                  StreamUpdate

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /streams/{streamId}

                  StreamUpdate

                  @@ -6872,90 +5562,24 @@

                  StreamUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "streamId": "string", "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], + "objects": [], + "layers": [], "baseProperties": {}, "globalMeasures": {}, "isComputedResult": false, - "viewerLayers": [ - {} - ], + "viewerLayers": [], "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] + "children": [], + "ancestors": [] } -

                  Parameters

                  +

                  Parameters

                  @@ -6990,21 +5614,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -7031,9 +5651,10 @@

                  Responses

                  StreamDelete

                  +

                  Code samples

                  @@ -7041,39 +5662,51 @@

                  StreamDelete

                  curl -X DELETE http://localhost:3000/api/v1/streams/{streamId} \ -H 'Accept: application/json' +
                  DELETE http://localhost:3000/api/v1/streams/{streamId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams/{streamId}',
                     method: 'delete',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/streams/{streamId}',
                   {
                     method: 'DELETE',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -7081,30 +5714,42 @@ 

                  StreamDelete

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.delete 'http://localhost:3000/api/v1/streams/{streamId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.delete('http://localhost:3000/api/v1/streams/{streamId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -7119,11 +5764,13 @@ 

                  StreamDelete

                  } in.close(); System.out.println(response.toString()); + +

                  DELETE /streams/{streamId}

                  StreamDelete

                  Deletes a specific stream.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -7151,21 +5798,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -7192,9 +5835,10 @@

                  Responses

                  StreamGetObjects

                  +

                  Code samples

                  @@ -7202,39 +5846,51 @@

                  StreamGetObjects

                  curl -X GET http://localhost:3000/api/v1/streams/{streamId}/objects \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/streams/{streamId}/objects HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams/{streamId}/objects',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/streams/{streamId}/objects',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -7242,30 +5898,42 @@ 

                  StreamGetObjects

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/streams/{streamId}/objects',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/streams/{streamId}/objects', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}/objects");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -7280,11 +5948,13 @@ 

                  StreamGetObjects

                  } in.close(); System.out.println(response.toString()); + +

                  GET /streams/{streamId}/objects

                  StreamGetObjects

                  Gets stream objects.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -7318,82 +5988,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -7420,9 +6026,10 @@

                  Responses

                  StreamClone

                  +

                  Code samples

                  @@ -7430,39 +6037,51 @@

                  StreamClone

                  curl -X POST http://localhost:3000/api/v1/streams/{streamId}/clone \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/streams/{streamId}/clone HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams/{streamId}/clone',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/streams/{streamId}/clone',
                   {
                     method: 'POST',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -7470,30 +6089,42 @@ 

                  StreamClone

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/streams/{streamId}/clone',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.post('http://localhost:3000/api/v1/streams/{streamId}/clone', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}/clone");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -7508,11 +6139,13 @@ 

                  StreamClone

                  } in.close(); System.out.println(response.toString()); -
                  + + +

                  POST /streams/{streamId}/clone

                  StreamClone

                  Clones a stream.

                  -

                  Parameters

                  +

                  Parameters

                  @@ -7540,195 +6173,19 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ], - "clone": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - }, - "parent": { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "streamId": "string", - "name": "string", - "objects": [ - { - "_id": "string", - "owner": "string", - "private": true, - "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], - "deleted": false, - "type": "Null", - "hash": "hash", - "geometryHash": "Type.hash", - "applicationId": "GUID", - "properties": {}, - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] - } - ], - "layers": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "baseProperties": {}, - "globalMeasures": {}, - "isComputedResult": false, - "viewerLayers": [ - {} - ], - "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ] - } + "resources": [], + "clone": {}, + "parent": {} }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -7755,9 +6212,10 @@

                  Responses

                  StreamDiff

                  +

                  Code samples

                  @@ -7765,39 +6223,51 @@

                  StreamDiff

                  curl -X GET http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -7805,30 +6275,42 @@ 

                  StreamDiff

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/streams/{streamId}/diff/{otherStreamId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -7843,11 +6325,13 @@ 

                  StreamDiff

                  } in.close(); System.out.println(response.toString()); + +

                  GET /streams/{streamId}/diff/{otherStreamId}

                  StreamDiff

                  Diffs two streams (objects and layers).

                  -

                  Parameters

                  +

                  Parameters

                  @@ -7882,103 +6366,19 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ], - "objects": { - "common": [ - "string" - ], - "inA": [ - "string" - ], - "inB": [ - "string" - ] - }, - "layers": { - "common": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "inA": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ], - "inB": [ - { - "name": "string", - "guid": "string", - "orderIndex": 0, - "startIndex": 0, - "objectCount": 0, - "topology": "string", - "properties": { - "color": { - "a": 1, - "hex": "string" - }, - "visible": true, - "pointsize": 0, - "linewidth": 0, - "shininess": 0, - "smooth": true, - "showEdges": true, - "wireframe": true - } - } - ] - } + "resources": [], + "objects": {}, + "layers": {} }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -8005,11 +6405,12 @@

                  Responses

                  -

                  Objects

                  +

                  Objects

                  Create, get and update objects.

                  ObjectCreate

                  +

                  Code samples

                  @@ -8018,28 +6419,35 @@

                  ObjectCreate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/objects HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/objects',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '[
                  @@ -8049,8 +6457,10 @@ 

                  ObjectCreate

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects', { method: 'POST', @@ -8062,20 +6472,27 @@

                  ObjectCreate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/objects',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -8083,11 +6500,16 @@ 

                  ObjectCreate

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/objects', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/objects");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -8102,6 +6524,8 @@ 

                  ObjectCreate

                  } in.close(); System.out.println(response.toString()); + +

                  POST /objects

                  ObjectCreate

                  @@ -8110,40 +6534,10 @@

                  ObjectCreate

                  Body parameter

                  [
                  -  {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  }
                  +  {}
                   ]
                   
                  -

                  Parameters

                  +

                  Parameters

                  @@ -8158,7 +6552,7 @@

                  Parameters

                  - + @@ -8170,82 +6564,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  body bodyarray[SpeckleObject]array[object] false No description
                  @@ -8272,9 +6602,10 @@

                  Responses

                  ObjectUpdate

                  +

                  Code samples

                  @@ -8283,28 +6614,35 @@

                  ObjectUpdate

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/objects/{objectId} HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/objects/{objectId}',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{
                  @@ -8312,15 +6650,9 @@ 

                  ObjectUpdate

                  "owner": "string", "private": true, "anonymousComments": true, - "canRead": [ - "string" - ], - "canWrite": [ - "string" - ], - "comments": [ - "string" - ], + "canRead": [], + "canWrite": [], + "comments": [], "deleted": false, "type": "Null", "hash": "hash", @@ -8328,22 +6660,18 @@

                  ObjectUpdate

                  "applicationId": "GUID", "properties": {}, "parent": "string", - "children": [ - "string" - ], - "ancestors": [ - "string" - ], - "transform": [ - 0 - ] + "children": [], + "ancestors": [], + "transform": [] }'
                  ; const headers = { 'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/{objectId}', { method: 'PUT', @@ -8355,20 +6683,27 @@

                  ObjectUpdate

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/objects/{objectId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -8376,11 +6711,16 @@ 

                  ObjectUpdate

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/objects/{objectId}', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -8395,6 +6735,8 @@ 

                  ObjectUpdate

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /objects/{objectId}

                  ObjectUpdate

                  @@ -8402,9 +6744,27 @@

                  ObjectUpdate

                  Body parameter

                  -
                  {}
                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Null",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": []
                  +}
                   
                  -

                  Parameters

                  +

                  Parameters

                  @@ -8438,82 +6798,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -8540,9 +6836,10 @@

                  Responses

                  ObjectGet

                  +

                  Code samples

                  @@ -8550,39 +6847,51 @@

                  ObjectGet

                  curl -X GET http://localhost:3000/api/v1/objects/{objectId} \ -H 'Accept: application/json' +
                  GET http://localhost:3000/api/v1/objects/{objectId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/objects/{objectId}',
                     method: 'get',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/objects/{objectId}',
                   {
                     method: 'GET',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -8590,30 +6899,42 @@ 

                  ObjectGet

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.get 'http://localhost:3000/api/v1/objects/{objectId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.get('http://localhost:3000/api/v1/objects/{objectId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -8628,11 +6949,13 @@ 

                  ObjectGet

                  } in.close(); System.out.println(response.toString()); + +

                  GET /objects/{objectId}

                  ObjectGet

                  Get a object

                  -

                  Parameters

                  +

                  Parameters

                  @@ -8659,82 +6982,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -8761,9 +7020,10 @@

                  Responses

                  ObjectDelete

                  +

                  Code samples

                  @@ -8771,39 +7031,51 @@

                  ObjectDelete

                  curl -X DELETE http://localhost:3000/api/v1/objects/{objectId} \ -H 'Accept: application/json' +
                  DELETE http://localhost:3000/api/v1/objects/{objectId} HTTP/1.1
                   Host: localhost:3000
                   
                  -Accept: application/json
                  +
                  +Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/objects/{objectId}',
                     method: 'delete',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   
                  +
                   const headers = {
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   fetch('http://localhost:3000/api/v1/objects/{objectId}',
                   {
                     method: 'DELETE',
                   
                  +
                     headers: headers
                   })
                   .then(function(res) {
                  @@ -8811,30 +7083,42 @@ 

                  ObjectDelete

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.delete 'http://localhost:3000/api/v1/objects/{objectId}',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                     'Accept': 'application/json'
                   }
                   
                  +
                   r = requests.delete('http://localhost:3000/api/v1/objects/{objectId}', params={
                   
                  +
                   }, headers = headers)
                   
                  +
                   print r.json()
                  +
                  +
                   
                  URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -8849,11 +7133,13 @@ 

                  ObjectDelete

                  } in.close(); System.out.println(response.toString()); + +

                  DELETE /objects/{objectId}

                  ObjectDelete

                  Deletes an object

                  -

                  Parameters

                  +

                  Parameters

                  @@ -8881,21 +7167,17 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] }
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -8922,9 +7204,10 @@

                  Responses

                  ObjectUpdateProperties

                  +

                  Code samples

                  @@ -8933,28 +7216,35 @@

                  ObjectUpdateProperties

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  PUT http://localhost:3000/api/v1/objects/{objectId}/properties HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/objects/{objectId}/properties',
                     method: 'put',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '{}';
                  @@ -8962,8 +7252,10 @@ 

                  ObjectUpdateProperties

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/{objectId}/properties', { method: 'PUT', @@ -8975,20 +7267,27 @@

                  ObjectUpdateProperties

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.put 'http://localhost:3000/api/v1/objects/{objectId}/properties',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -8996,11 +7295,16 @@ 

                  ObjectUpdateProperties

                  'Accept': 'application/json' } + r = requests.put('http://localhost:3000/api/v1/objects/{objectId}/properties', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/objects/{objectId}/properties");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -9015,6 +7319,8 @@ 

                  ObjectUpdateProperties

                  } in.close(); System.out.println(response.toString()); + +

                  PUT /objects/{objectId}/properties

                  ObjectUpdateProperties

                  @@ -9024,7 +7330,7 @@

                  ObjectUpdateProperties

                  {}
                   
                  -

                  Parameters

                  +

                  Parameters

                  @@ -9037,13 +7343,6 @@

                  Parameters

                  - - - - - - - @@ -9066,12 +7365,10 @@

                  Parameters

                  "success": true, "message": "string", "resource": {}, - "resources": [ - {} - ] + "resources": [] } -

                  Responses

                  +

                  Responses

                  undefinedbodyobjectfalseNo description
                  objectId path string
                  @@ -9092,9 +7389,10 @@

                  Responses

                  ObjectGetBulk

                  +

                  Code samples

                  @@ -9103,28 +7401,35 @@

                  ObjectGetBulk

                  -H 'Content-Type: application/json' \ -H 'Accept: application/json' +
                  POST http://localhost:3000/api/v1/objects/getbulk HTTP/1.1
                   Host: localhost:3000
                   Content-Type: application/json
                   Accept: application/json
                   
                  -
                  + +
                  var headers = {
                     'Content-Type':'application/json',
                     'Accept':'application/json'
                   
                  +
                   };
                   
                  +
                   $.ajax({
                     url: 'http://localhost:3000/api/v1/objects/getbulk',
                     method: 'post',
                   
                  +
                     headers: headers,
                     success: function(data) {
                       console.log(JSON.stringify(data));
                     }
                   })
                  +
                  +
                   
                  const request = require('node-fetch');
                   const inputBody = '[
                  @@ -9134,8 +7439,10 @@ 

                  ObjectGetBulk

                  'Content-Type':'application/json', 'Accept':'application/json' + }; + fetch('http://localhost:3000/api/v1/objects/getbulk', { method: 'POST', @@ -9147,20 +7454,27 @@

                  ObjectGetBulk

                  }).then(function(body) { console.log(body); }); + +
                  require 'rest-client'
                   require 'json'
                   
                  +
                   headers = {
                     'Content-Type' => 'application/json',
                     'Accept' => 'application/json'
                   }
                   
                  +
                   result = RestClient.post 'http://localhost:3000/api/v1/objects/getbulk',
                     params: {
                     }, headers: headers
                   
                  +
                   p JSON.parse(result)
                  +
                  +
                   
                  import requests
                   headers = {
                  @@ -9168,11 +7482,16 @@ 

                  ObjectGetBulk

                  'Accept': 'application/json' } + r = requests.post('http://localhost:3000/api/v1/objects/getbulk', params={ + }, headers = headers) + print r.json() + +
                  URL obj = new URL("http://localhost:3000/api/v1/objects/getbulk");
                   HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                  @@ -9187,6 +7506,8 @@ 

                  ObjectGetBulk

                  } in.close(); System.out.println(response.toString()); + +

                  POST /objects/getbulk

                  ObjectGetBulk

                  @@ -9198,7 +7519,7 @@

                  ObjectGetBulk

                  "string" ] -

                  Parameters

                  +

                  Parameters

                  @@ -9232,82 +7553,18 @@

                  Parameters

                  {
                     "success": true,
                     "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  +  "resource": {},
                  +  "resources": {}
                   }
                   
                  {
                     "success": true,
                     "message": "string",
                     "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  +  "resources": []
                   }
                   
                  -

                  Responses

                  +

                  Responses

                  @@ -9334,27 +7591,21 @@

                  Responses

                  Schemas

                  -

                  ResourceBase

                  -

                  +

                  ResourceBase

                  +

                  {
                     "_id": "string",
                     "owner": "string",
                     "private": true,
                     "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                     "deleted": false
                  -} 
                  +}
                   

                  Properties

                  @@ -9392,12 +7643,6 @@

                  Properties

                  - - - - - - @@ -9413,12 +7658,18 @@

                  Properties

                  - + + + + + + +
                  No description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  canRead [string] false comments [string] falseNo descriptionAn array of comment ids.
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  -

                  User

                  -

                  +

                  User

                  +

                  {
                     "_id": "string",
                     "role": "string",
                  @@ -9429,12 +7680,8 @@ 

                  User

                  "name": "string", "surname": "string", "company": "string", - "logins": [ - { - "date": "string" - } - ] -} + "logins": [] +}

                  Properties

                  @@ -9505,7 +7752,7 @@

                  Properties

                  - + @@ -9515,22 +7762,16 @@

                  Properties

                  logins [object] falseit's a timestamp for each login.an array storing each time the user logged in.
                  » date
                  -

                  AppClient

                  -

                  +

                  AppClient

                  +

                  {
                     "_id": "string",
                     "owner": "string",
                     "private": true,
                     "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                     "deleted": false,
                     "role": "string",
                     "documentGuid": "string",
                  @@ -9539,9 +7780,10 @@ 

                  AppClient

                  "documentLocation": "string", "streamId": "string", "online": true -} +}

                  Properties

                  +

                  allOf

                  @@ -9553,127 +7795,100 @@

                  Properties

                  - - - - - - - - + + + +
                  _idstringfalseDatabase uuid.
                  ownerstringanonymousResourceBase false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - -
                  privatebooleanfalseNo descriptionNameTypeRequiredDescription
                  anonymousCommentsbooleananonymousobject false No description
                  deletedboolean» _idstring falseControls archival status - does not actually delete anythingDatabase uuid.
                  role» role string false Either Sender, Receiver or anything else you can think of.
                  documentGuid» documentGuid string false No description
                  documentName» documentName string false No description
                  documentType» documentType string false No description
                  documentLocation» documentLocation string false No description
                  streamId» streamId string false The streamId that this client is attached to.
                  online» online boolean false Is it accessible from the server or not?
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  -

                  Project

                  -

                  +

                  Project

                  +

                  {
                     "_id": "string",
                     "owner": "string",
                     "private": true,
                     "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                     "deleted": false,
                     "name": "string",
                  -  "users": [
                  -    "string"
                  -  ],
                  -  "streams": [
                  -    "string"
                  -  ],
                  -  "subProjects": [
                  -    "string"
                  -  ]
                  -} 
                  +  "number": "string",
                  +  "users": [],
                  +  "streams": [],
                  +  "subProjects": []
                  +}
                   

                  Properties

                  +

                  allOf

                  @@ -9685,113 +7900,90 @@

                  Properties

                  - - - - - - - - + + + +
                  _idstringfalseNo description
                  ownerstringanonymousResourceBase false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - - - - - - + - - - - - - - - + + - - + + - + - + - +
                  privatebooleanfalseNo descriptionNameTypeRequiredDescription
                  anonymousCommentsbooleananonymousobject false No description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  name» _id string false No description
                  canRead[string]falseNo description
                  canWrite[string]» namestring false No description
                  comments[string]» numberstring false No description
                  users» users [string] false No description
                  streams» streams [string] false No description
                  subProjects» subProjects [string] false No description
                  -

                  Comment

                  -

                  +

                  Comment

                  +

                  {
                     "_id": "string",
                     "owner": "string",
                     "private": true,
                     "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                     "deleted": false,
                  -  "resource": {
                  -    "resourceType": "string",
                  -    "resourceId": "string"
                  -  },
                  +  "resource": {},
                     "text": "string",
                  -  "assignedTo": [
                  -    "string"
                  -  ],
                  +  "assignedTo": [],
                     "closed": true,
                  -  "labels": [
                  -    "string"
                  -  ],
                  +  "labels": [],
                     "view": {},
                     "screenshot": "string"
                  -} 
                  +}
                   

                  Properties

                  +

                  allOf

                  @@ -9803,200 +7995,112 @@

                  Properties

                  - - - - - - - - - - - - - - - - - - - - + + + +
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleananonymousResourceBase false No description
                  +

                  and

                  + + - - - - + + + + + + - + - - + + - + - + - - - - - - - - - - - - - + - + - - + + - + - - + + - - + +
                  deletedbooleanfalseControls archival status - does not actually delete anythingNameTypeRequiredDescription
                  resourceanonymous object false No description
                  » resourceTypestring» resourceobject false No description
                  » resourceId»» resourceType string false No description
                  text»» resourceId string false No description
                  closedbooleanfalseNo description
                  viewobjectfalseNo description
                  screenshot» text string false No description
                  canRead» assignedTo [string] false No description
                  canWrite[string]» closedboolean false No description
                  comments» labels [string] false No description
                  assignedTo[string]» viewobject false No description
                  labels[string]» screenshotstring false No description
                  -

                  SpeckleStream

                  -

                  +

                  SpeckleStream

                  +

                  {
                     "_id": "string",
                     "owner": "string",
                     "private": true,
                     "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                     "deleted": false,
                     "streamId": "string",
                     "name": "string",
                  -  "objects": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ],
                  -  "layers": [
                  -    {
                  -      "name": "string",
                  -      "guid": "string",
                  -      "orderIndex": 0,
                  -      "startIndex": 0,
                  -      "objectCount": 0,
                  -      "topology": "string",
                  -      "properties": {
                  -        "color": {
                  -          "a": 1,
                  -          "hex": "string"
                  -        },
                  -        "visible": true,
                  -        "pointsize": 0,
                  -        "linewidth": 0,
                  -        "shininess": 0,
                  -        "smooth": true,
                  -        "showEdges": true,
                  -        "wireframe": true
                  -      }
                  -    }
                  -  ],
                  +  "objects": [],
                  +  "layers": [],
                     "baseProperties": {},
                     "globalMeasures": {},
                     "isComputedResult": false,
                  -  "viewerLayers": [
                  -    {}
                  -  ],
                  +  "viewerLayers": [],
                     "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ]
                  -} 
                  +  "children": [],
                  +  "ancestors": []
                  +}
                   

                  Properties

                  +

                  allOf

                  @@ -10008,487 +8112,732 @@

                  Properties

                  - - + + + +
                  _idstringanonymousResourceBase false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - - + + - + - - + + - + - + - + - + - + + +
                  ownerstringfalseNo descriptionNameTypeRequiredDescription
                  privatebooleananonymousobject false No description
                  anonymousCommentsboolean» streamIdstring falseNo descriptionThe stream's short id.
                  deletedboolean» namestring falseControls archival status - does not actually delete anythingThe data stream's name
                  streamIdstring» objects[SpeckleObject] falseThe stream's short id.An array of SpeckleObject ids.
                  namestring» layers[Layer] falseThe data stream's nameAn array of speckle layers.
                  baseProperties» baseProperties object false Units, tolerances, etc.
                  globalMeasures» globalMeasures object false Any performance measures can go in here.
                  isComputedResult» isComputedResult boolean false No description
                  parentstring» viewerLayers[object] falseIf this stream is a child, the parent's streamId.No description
                  canRead[string]» parentstring falseNo descriptionIf this stream is a child, the parent's streamId.
                  canWrite» children [string] falseNo descriptionAn array of the streamId of any children of this stream.
                  comments» ancestors [string] falseNo descriptionIf resulting from a merge, the streams that this one was born out of.
                  +

                  Layer

                  +

                  +
                  {
                  +  "name": "string",
                  +  "guid": "string",
                  +  "orderIndex": 0,
                  +  "startIndex": 0,
                  +  "objectCount": 0,
                  +  "topology": "string",
                  +  "properties": {}
                  +}
                  +
                  +

                  Properties

                  + + - - - - + + + + + + - + - + - + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - + - + - + - - + + - + + + +
                  objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects.NameTypeRequiredDescription
                  » _idname string falseNo descriptionLayer's name
                  » ownerguid string falseNo descriptionLayer's guid (must be unique)
                  » privatebooleanorderIndexinteger falseNo descriptionDescribes this layer's position in the list of layers.
                  » anonymousCommentsbooleanstartIndexnumber falseNo descriptionThe index of the first object relative to the stream's objects array
                  » deletedbooleanobjectCountnumber falseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.How many objects does this layer have.
                  » geometryHashtopology string falseObject's geometry hashString describing the nested tree structure (GH centric).
                  » applicationIdstringpropertiesLayerProperties falseThe id/guid that the origin application identifies this object by.No description
                  +

                  LayerProperties

                  +

                  +
                  {
                  +  "color": {},
                  +  "visible": true,
                  +  "pointsize": 0,
                  +  "linewidth": 0,
                  +  "shininess": 0,
                  +  "smooth": true,
                  +  "showEdges": true,
                  +  "wireframe": true
                  +}
                  +
                  +

                  Properties

                  + + + + + + + + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + + +
                  NameTypeRequiredDescription
                  » propertiescolor object falseThe extra properties field of a speckle object.No description
                  » parentstring» anumber falseIf this object is a child, the parent's objectid.alpha value
                  » typeUnknown» hexstring falseNo descriptionhex color value
                  » descriptionUnknownvisibleboolean falseNo descriptiontoggles layer visibility.
                  » canRead[string]pointsizenumber falseNo descriptiondefines point size in threejs
                  » canWrite[string]linewidthnumber falseNo descriptiondefines line thickness in threejs
                  » comments[string]shininessnumber falseNo descriptionsays it all. speckle is superficial.
                  » children[string]smoothboolean falseNo descriptionsmooth shading toggle
                  » ancestors[string]showEdgesboolean falseNo descriptiondisplay edges or not yo.
                  » transform[number]wireframeboolean falseNo descriptioni'm bored.
                  +

                  ResponseBase

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": []
                  +}
                  +
                  +

                  Properties

                  + + - - - - + + + + + + - - + + - + - + - + - - + + - + - - + + - + + +
                  layers[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].NameTypeRequiredDescription
                  » namestringsuccessboolean falseLayer's nameBesides the http status code, this tells you whether the call succeeded or not.
                  » guidmessage string falseLayer's guid (must be unique)Either an error or a confirmation.
                  » orderIndexintegerresourceobject falseDescribes this layer's position in the list of layers.Returned resource (if querying by id)
                  » startIndexnumberresources[object] falseThe index of the first object relative to the stream's objects arrayReturned resources array (if it's a bulk query)
                  +

                  ResponseUser

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - - - + + + + + + - - + + - + + +
                  » objectCountnumberfalseHow many objects does this layer have.NameTypeRequiredDescription
                  » topologystringanonymousResponseBase falseString describing the nested tree structure (GH centric).No description
                  +

                  and

                  + + - - - - + + + + + + - + - - - - - - - - + + - + - - + + - + + +
                  » propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.NameTypeRequiredDescription
                  »» coloranonymous object false No description
                  »»» anumberfalsealpha value
                  »»» hexstring» resourceUser falsehex color valueNo description
                  »» visibleboolean» resources[User] falsetoggles layer visibility.No description
                  +

                  ResponseClient

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - - - + + + + + + - - + + - + + +
                  »» pointsizenumberfalsedefines point size in threejsNameTypeRequiredDescription
                  »» linewidthnumberanonymousResponseBase falsedefines line thickness in threejsNo description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - + - - + + - + + +
                  »» shininessnumberfalsesays it all. speckle is superficial.NameTypeRequiredDescription
                  »» smoothbooleananonymousobject falsesmooth shading toggleNo description
                  »» showEdgesboolean» resourceAppClient falsedisplay edges or not yo.No description
                  »» wireframeboolean» resources[AppClient] falsei'm bored.No description
                  +

                  ResponseProject

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - - - + + + + + + - - + + + +
                  » propertiesUnknownfalseNo descriptionNameTypeRequiredDescription
                  » descriptionUnknownanonymousResponseBase false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + +
                  » x-old-refUnknownfalseNo descriptionNameTypeRequiredDescription
                  viewerLayers[object]anonymousobject false No description
                  children[string]» resourceProject false No description
                  ancestors[string]» resources[Project] false No description
                  -

                  Enumerated Values

                  +

                  ResponseComment

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  - - + + + + - - - - - - + + + + + +
                  PropertyValueNameTypeRequiredDescription
                  » typeNull
                  » typeAbstractanonymousResponseBasefalseNo description
                  +

                  and

                  + + - - + + + + + + - - + + + + - - + + + + - - + + + + + +
                  » typePlaceholderNameTypeRequiredDescription
                  » typeBooleananonymousobjectfalseNo description
                  » typeNumber» resourceCommentfalseNo description
                  » typeString» resources[Comment]falseNo description
                  +

                  ResponseStream

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - + + + + + + - - + + + + + +
                  » typeIntervalNameTypeRequiredDescription
                  » typeInterval2danonymousResponseBasefalseNo description
                  +

                  and

                  + + - - + + + + + + - - + + + + - - + + + + - - + + + + + +
                  » typePointNameTypeRequiredDescription
                  » typeVectoranonymousobjectfalseNo description
                  » typePlane» resourceSpeckleStreamfalseNo description
                  » typeLine» resources[SpeckleStream]falseNo description
                  +

                  ResponseObject

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - + + + + + + - - + + + + + +
                  » typeRectangleNameTypeRequiredDescription
                  » typeCircleanonymousResponseBasefalseNo description
                  +

                  and

                  + + - - + + + + + + - - + + + + - - + + + + - - + + + + + +
                  » typeArcNameTypeRequiredDescription
                  » typeEllipseanonymousobjectfalseNo description
                  » typePolycurve» resourceSpeckleObjectfalseNo description
                  » typeBox» resources[SpeckleObject]falseNo description
                  +

                  ResponseStreamClone

                  +

                  +
                  {
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": [],
                  +  "clone": {},
                  +  "parent": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - + + + + + + - - + + + + + +
                  » typePolylineNameTypeRequiredDescription
                  » typeCurveanonymousResponseBasefalseNo description
                  +

                  and

                  + + - - + + + + + + - - + + + + - - + + + + - - + + + +
                  » typeMeshNameTypeRequiredDescription
                  » typeBrepanonymousobjectfalseNo description
                  » typeAnnotation» cloneSpeckleStreamfalseNo description
                  » typeExtrusion» parentSpeckleStreamfalseNo description
                  -

                  Layer

                  -

                  +

                  ResponseStreamDiff

                  +

                  {
                  -  "name": "string",
                  -  "guid": "string",
                  -  "orderIndex": 0,
                  -  "startIndex": 0,
                  -  "objectCount": 0,
                  -  "topology": "string",
                  -  "properties": {
                  -    "color": {
                  -      "a": 1,
                  -      "hex": "string"
                  -    },
                  -    "visible": true,
                  -    "pointsize": 0,
                  -    "linewidth": 0,
                  -    "shininess": 0,
                  -    "smooth": true,
                  -    "showEdges": true,
                  -    "wireframe": true
                  -  }
                  -} 
                  +  "success": true,
                  +  "message": "string",
                  +  "resource": {},
                  +  "resources": [],
                  +  "objects": {},
                  +  "layers": {}
                  +}
                   

                  Properties

                  +

                  allOf

                  @@ -10500,150 +8849,123 @@

                  Properties

                  - - + + - + + +
                  namestringanonymousResponseBase falseLayer's nameNo description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + + +
                  guidstringfalseLayer's guid (must be unique)NameTypeRequiredDescription
                  orderIndexintegeranonymousobject falseDescribes this layer's position in the list of layers.No description
                  startIndexnumber» objectsobject falseThe index of the first object relative to the stream's objects arrayNo description
                  objectCountnumber»» common[string] falseHow many objects does this layer have.No description
                  topologystring»» inA[string] falseString describing the nested tree structure (GH centric).No description
                  propertiesLayerProperties»» inB[string] falseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.No description
                  » color» layers object false No description
                  »» anumberfalsealpha value
                  »» hexstringfalsehex color value
                  » visiblebooleanfalsetoggles layer visibility.
                  » pointsizenumberfalsedefines point size in threejs
                  » linewidthnumberfalsedefines line thickness in threejs
                  » shininessnumberfalsesays it all. speckle is superficial.
                  » smoothbooleanfalsesmooth shading toggle
                  » showEdgesbooleanfalsedisplay edges or not yo.
                  » wireframeboolean»» common[Layer] falsei'm bored.No description
                  typeUnknown»» inA[Layer] false No description
                  propertiesUnknown»» inB[Layer] false No description
                  +

                  SpeckleObject

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Null",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": []
                  +}
                  +
                  +

                  Properties

                  +

                  allOf

                  + + - - - - + + + + + + - - + +
                  descriptionUnknownfalseNo descriptionNameTypeRequiredDescription
                  x-old-refUnknownanonymousResourceBase false No description
                  -

                  LayerProperties

                  -

                  -
                  {
                  -  "color": {
                  -    "a": 1,
                  -    "hex": "string"
                  -  },
                  -  "visible": true,
                  -  "pointsize": 0,
                  -  "linewidth": 0,
                  -  "shininess": 0,
                  -  "smooth": true,
                  -  "showEdges": true,
                  -  "wireframe": true
                  -} 
                  -
                  -

                  Properties

                  +

                  and

                  @@ -10655,381 +8977,279 @@

                  Properties

                  - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - +
                  coloranonymous object false No description
                  » anumber» typestring falsealpha valueObject's subtype
                  » hex» hash string falsehex color valueObject's unique hash.
                  visibleboolean» geometryHashstring falsetoggles layer visibility.Object's geometry hash
                  pointsizenumber» applicationIdstring falsedefines point size in threejsThe id/guid that the origin application identifies this object by.
                  linewidthnumber» propertiesobject falsedefines line thickness in threejsThe extra properties field of a speckle object.
                  shininessnumber» parentstring falsesays it all. speckle is superficial.If this object is a child, the parent's objectid.
                  smoothboolean» children[string] falsesmooth shading toggleAn array of the ids of any children of this object.
                  showEdgesboolean» ancestors[string] falsedisplay edges or not yo.If resulting from a merge, the objects that this one was born out of.
                  wireframeboolean» transform[number] falsei'm bored.No description
                  -

                  ResponseBase

                  -

                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {},
                  -  "resources": [
                  -    {}
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  +

                  Enumerated Values

                  - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - -
                  NameTypeRequiredDescriptionPropertyValue
                  successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.typeNull
                  messagestringfalseEither an error or a confirmation.typeAbstract
                  resourceobjectfalseReturned resource (if querying by id)typePlaceholder
                  resources[object]falseNo descriptiontypeBoolean
                  -

                  ResponseUser

                  -

                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "role": "string",
                  -    "avatar": "string",
                  -    "apitoken": "string",
                  -    "token": "string",
                  -    "email": "string",
                  -    "name": "string",
                  -    "surname": "string",
                  -    "company": "string",
                  -    "logins": [
                  -      {
                  -        "date": "string"
                  -      }
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "role": "string",
                  -      "avatar": "string",
                  -      "apitoken": "string",
                  -      "token": "string",
                  -      "email": "string",
                  -      "name": "string",
                  -      "surname": "string",
                  -      "company": "string",
                  -      "logins": [
                  -        {
                  -          "date": "string"
                  -        }
                  -      ]
                  -    }
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - + + - - - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - - + + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + + +
                  NameTypeRequiredDescriptiontypeNumber
                  successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.typeString
                  messagestringfalseEither an error or a confirmation.typeInterval
                  resourceUserfalseDescribes a user.typeInterval2d
                  » _idstringfalseDatabase uuid.typePoint
                  » rolestringfalseUser's role. Defaults to "user".typeVector
                  » avatarstringfalseWe will need profile pics at one point.typePlane
                  » apitokenstringfalsea signed jwt token that expires in 1 year.typeLine
                  » tokenstringfalsea signed jwt token that expires in 1 day.typeRectangle
                  » emailstringfalseuser's emailtypeCircle
                  » namestringfalseUser's given nametypeArc
                  » surnamestringfalseUser's family name
                  typeEllipse
                  » companystringfalseUsers's companytypePolycurve
                  » logins[object]falseit's a timestamp for each login.typeBox
                  »» datestringfalseNo descriptiontypePolyline
                  resources[User]falseDescribes a user.typeCurve
                  » _idstringfalseDatabase uuid.typeMesh
                  » rolestringfalseUser's role. Defaults to "user".typeBrep
                  » avatarstringfalseWe will need profile pics at one point.typeAnnotation
                  » apitokenstringfalsea signed jwt token that expires in 1 year.typeExtrusion
                  +

                  SpeckleAbstract

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Abstract",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "_type": "string",
                  +  "assembly": "string"
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + - + + +
                  » tokenstringfalsea signed jwt token that expires in 1 day.NameTypeRequiredDescription
                  » emailstringanonymousSpeckleObject falseuser's emailNo description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - + - - + + - + - + - +
                  » namestringfalseUser's given nameNameTypeRequiredDescription
                  » surnamestringanonymousobject falseUser's family nameNo description
                  » companystring» typeany falseUsers's companyNo description
                  » logins[object]» _typestring falseit's a timestamp for each login.the original type of the object
                  »» date» assembly string falseNo descriptionthe original assembly of this object
                  -

                  ResponseClient

                  -

                  +

                  SpecklePlaceholder

                  +

                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "role": "string",
                  -    "documentGuid": "string",
                  -    "documentName": "string",
                  -    "documentType": "string",
                  -    "documentLocation": "string",
                  -    "streamId": "string",
                  -    "online": true
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "role": "string",
                  -      "documentGuid": "string",
                  -      "documentName": "string",
                  -      "documentType": "string",
                  -      "documentLocation": "string",
                  -      "streamId": "string",
                  -      "online": true
                  -    }
                  -  ]
                  -} 
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Abstract",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": []
                  +}
                   

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  @@ -11041,273 +9261,441 @@

                  Properties

                  - - + + - + + + +
                  successbooleananonymousSpeckleObject falseBesides the http status code, this tells you whether the call succeeded or not.No description
                  +

                  and

                  + + + + + + + + + - - + + - + - - + + - + + +
                  NameTypeRequiredDescription
                  messagestringanonymousobject falseEither an error or a confirmation.No description
                  resourceAppClient» typeany falseA speckle client.No description
                  +

                  SpeckleBoolean

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Boolean",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "value": true
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » _idstringfalseDatabase uuid.NameTypeRequiredDescription
                  » ownerstringanonymousSpeckleObject false No description
                  +

                  and

                  + + - - + + + + + + + + + + - - + + - + - + + +
                  » privatebooleanNameTypeRequiredDescription
                  anonymousobject false No description
                  » anonymousCommentsboolean» typeany false No description
                  » deleted» value boolean falseControls archival status - does not actually delete anythingNo description
                  +

                  SpeckleNumber

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Number",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "value": 0
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » rolestringfalseEither Sender, Receiver or anything else you can think of.NameTypeRequiredDescription
                  » documentGuidstringanonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + + - - - - - - - + + +
                  » documentNamestringfalseNo descriptionNameTypeRequiredDescription
                  » documentTypestringanonymousobject false No description
                  » documentLocationstring» typeany false No description
                  » streamIdstring» valuenumber falseThe streamId that this client is attached to.
                  » onlinebooleanfalseIs it accessible from the server or not?A number. Can be float, double, etc.
                  +

                  SpeckleString

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "String",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "value": "string"
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » canRead[string]falseNo descriptionNameTypeRequiredDescription
                  » canWrite[string]anonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - + - + - + + +
                  » comments[string]falseNo descriptionNameTypeRequiredDescription
                  resources[AppClient]anonymousobject falseA speckle client.No description
                  » _idstring» typeany falseDatabase uuid.No description
                  » owner» value string falseNo descriptionA string.
                  +

                  SpeckleInterval

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Interval",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "start": 0,
                  +  "end": 0
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » privatebooleanfalseNo descriptionNameTypeRequiredDescription
                  » anonymousCommentsbooleananonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - - + + - - + + + +
                  » deletedbooleanfalseControls archival status - does not actually delete anythingNameTypeRequiredDescription
                  » rolestringanonymousobject falseEither Sender, Receiver or anything else you can think of.No description
                  » documentGuidstring» typeany false No description
                  » documentNamestring» startnumber false No description
                  » documentTypestring» endnumber false No description
                  +

                  SpeckleInterval2d

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Null",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "U": {},
                  +  "V": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + - + + +
                  » documentLocationstringfalseNo descriptionNameTypeRequiredDescription
                  » streamIdstringanonymousSpeckleObject falseThe streamId that this client is attached to.No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + +
                  » onlinebooleanfalseIs it accessible from the server or not?NameTypeRequiredDescription
                  » canRead[string]anonymousobject false No description
                  » canWrite[string]» USpeckleInterval false No description
                  » comments[string]» VSpeckleInterval false No description
                  -

                  ResponseProject

                  -

                  +

                  SpecklePoint

                  +

                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "name": "string",
                  -    "users": [
                  -      "string"
                  -    ],
                  -    "streams": [
                  -      "string"
                  -    ],
                  -    "subProjects": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "name": "string",
                  -      "users": [
                  -        "string"
                  -      ],
                  -      "streams": [
                  -        "string"
                  -      ],
                  -      "subProjects": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  -} 
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Point",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "value": []
                  +}
                   

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  @@ -11319,245 +9707,338 @@

                  Properties

                  - - + + - + + +
                  successbooleananonymousSpeckleObject falseBesides the http status code, this tells you whether the call succeeded or not.No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - - + + - + + +
                  messagestringfalseEither an error or a confirmation.NameTypeRequiredDescription
                  resourceProjectanonymousobject falseA project contains a group of streams and users.No description
                  » _idstring» typeany false No description
                  » ownerstring» value[number] falseNo descriptionAn array containing the X, Y and Z coords of the point.
                  +

                  SpeckleVector

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Vector",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "value": []
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » privatebooleanfalseNo descriptionNameTypeRequiredDescription
                  » anonymousCommentsbooleananonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + + - + + +
                  » deletedbooleanfalseControls archival status - does not actually delete anythingNameTypeRequiredDescription
                  » namestringanonymousobject false No description
                  » canRead[string]» typeany false No description
                  » canWrite[string]» value[number] falseNo descriptionAn array containing the X, Y and Z coords of the vector.
                  +

                  SpecklePlane

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Plane",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "origin": {},
                  +  "normal": {},
                  +  "xdir": {},
                  +  "ydir": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » comments[string]falseNo descriptionNameTypeRequiredDescription
                  » users[string]anonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - + - - + + - - + + - - + + - - + + + +
                  » streams[string]falseNo descriptionNameTypeRequiredDescription
                  » subProjects[string]anonymousobject false No description
                  resources[Project]» typeany falseA project contains a group of streams and users.No description
                  » _idstring» originSpecklePoint false No description
                  » ownerstring» normalSpeckleVector false No description
                  » privateboolean» xdirSpeckleVector false No description
                  » anonymousCommentsboolean» ydirSpeckleVector false No description
                  +

                  SpeckleCircle

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Circle",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "radius": 0,
                  +  "center": {},
                  +  "normal": {},
                  +  "domain": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » deletedbooleanfalseControls archival status - does not actually delete anythingNameTypeRequiredDescription
                  » namestringanonymousSpeckleObject false No description
                  +

                  and

                  + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + +
                  NameTypeRequiredDescription
                  » canRead[string]anonymousobject false No description
                  » canWrite[string]» typeany false No description
                  » comments[string]» radiusnumber false No description
                  » users[string]» centerSpecklePoint false No description
                  » streams[string]» normalSpeckleVector false No description
                  » subProjects[string]» domainSpeckleInterval false No description
                  -

                  ResponseComment

                  -

                  +

                  SpeckleArc

                  +

                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "resource": {
                  -      "resourceType": "string",
                  -      "resourceId": "string"
                  -    },
                  -    "text": "string",
                  -    "assignedTo": [
                  -      "string"
                  -    ],
                  -    "closed": true,
                  -    "labels": [
                  -      "string"
                  -    ],
                  -    "view": {},
                  -    "screenshot": "string"
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "resource": {
                  -        "resourceType": "string",
                  -        "resourceId": "string"
                  -      },
                  -      "text": "string",
                  -      "assignedTo": [
                  -        "string"
                  -      ],
                  -      "closed": true,
                  -      "labels": [
                  -        "string"
                  -      ],
                  -      "view": {},
                  -      "screenshot": "string"
                  -    }
                  -  ]
                  -} 
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Arc",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "radius": 0,
                  +  "startAngle": 0,
                  +  "endAngle": 0,
                  +  "angleRadians": 0,
                  +  "plane": {},
                  +  "domain": {}
                  +}
                   

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  @@ -11569,419 +10050,371 @@

                  Properties

                  - - + + - + + +
                  successbooleananonymousSpeckleObject falseBesides the http status code, this tells you whether the call succeeded or not.No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + + +
                  messagestringfalseEither an error or a confirmation.NameTypeRequiredDescription
                  resourceCommentanonymousobject falseA comment/issue.No description
                  » _idstring» typeany false No description
                  » ownerstring» radiusnumber false No description
                  » privateboolean» startAnglenumber false No description
                  » anonymousCommentsboolean» endAnglenumber false No description
                  » deletedboolean» angleRadiansnumber falseControls archival status - does not actually delete anythingNo description
                  » resourceobject» planeSpecklePlane false No description
                  »» resourceTypestring» domainSpeckleInterval false No description
                  +

                  SpeckleEllipse

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Ellipse",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "firstRadius": 0,
                  +  "secondRadius": 0,
                  +  "plane": {},
                  +  "domain": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  »» resourceIdstringfalseNo descriptionNameTypeRequiredDescription
                  » textstringanonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - + - - + + - - + + - - + + - - + + - - - - - - - - + + + +
                  » closedbooleanfalseNo descriptionNameTypeRequiredDescription
                  » viewanonymous object false No description
                  » screenshotstring» typeany false No description
                  » canRead[string]» firstRadiusnumber false No description
                  » canWrite[string]» secondRadiusnumber false No description
                  » comments[string]» planeSpecklePlane false No description
                  » assignedTo[string]falseNo description
                  » labels[string]» domainSpeckleInterval false No description
                  +

                  SpecklePolycurve

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Polycurve",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "segments": [],
                  +  "domain": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  resources[Comment]falseA comment/issue.NameTypeRequiredDescription
                  » _idstringanonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - - - - - - - + + - - + + + +
                  » ownerstringfalseNo descriptionNameTypeRequiredDescription
                  » privatebooleananonymousobject false No description
                  » anonymousCommentsboolean» typeany false No description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » resourceobject» segments[SpeckleObject] false No description
                  »» resourceTypestring» domainSpeckleInterval false No description
                  +

                  SpeckleBox

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Box",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "basePlane": {},
                  +  "xSize": {},
                  +  "ySize": {},
                  +  "zSize": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  »» resourceIdstringfalseNo descriptionNameTypeRequiredDescription
                  » textstringanonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - + - - - - - - - - + + - - + + - - + + - - + + - - + +
                  » closedbooleanfalseNo descriptionNameTypeRequiredDescription
                  » viewanonymous object false No description
                  » screenshotstringfalseNo description
                  » canRead[string]» typeany false No description
                  » canWrite[string]» basePlaneSpecklePlane false No description
                  » comments[string]» xSizeSpeckleInterval false No description
                  » assignedTo[string]» ySizeSpeckleInterval false No description
                  » labels[string]» zSizeSpeckleInterval false No description
                  -

                  ResponseStream

                  -

                  +

                  SpeckleLine

                  +

                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "streamId": "string",
                  -    "name": "string",
                  -    "objects": [
                  -      {
                  -        "_id": "string",
                  -        "owner": "string",
                  -        "private": true,
                  -        "anonymousComments": true,
                  -        "canRead": [
                  -          "string"
                  -        ],
                  -        "canWrite": [
                  -          "string"
                  -        ],
                  -        "comments": [
                  -          "string"
                  -        ],
                  -        "deleted": false,
                  -        "type": "Null",
                  -        "hash": "hash",
                  -        "geometryHash": "Type.hash",
                  -        "applicationId": "GUID",
                  -        "properties": {},
                  -        "parent": "string",
                  -        "children": [
                  -          "string"
                  -        ],
                  -        "ancestors": [
                  -          "string"
                  -        ],
                  -        "transform": [
                  -          0
                  -        ]
                  -      }
                  -    ],
                  -    "layers": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "baseProperties": {},
                  -    "globalMeasures": {},
                  -    "isComputedResult": false,
                  -    "viewerLayers": [
                  -      {}
                  -    ],
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "streamId": "string",
                  -      "name": "string",
                  -      "objects": [
                  -        {
                  -          "_id": "string",
                  -          "owner": "string",
                  -          "private": true,
                  -          "anonymousComments": true,
                  -          "canRead": [
                  -            "string"
                  -          ],
                  -          "canWrite": [
                  -            "string"
                  -          ],
                  -          "comments": [
                  -            "string"
                  -          ],
                  -          "deleted": false,
                  -          "type": "Null",
                  -          "hash": "hash",
                  -          "geometryHash": "Type.hash",
                  -          "applicationId": "GUID",
                  -          "properties": {},
                  -          "parent": "string",
                  -          "children": [
                  -            "string"
                  -          ],
                  -          "ancestors": [
                  -            "string"
                  -          ],
                  -          "transform": [
                  -            0
                  -          ]
                  -        }
                  -      ],
                  -      "layers": [
                  -        {
                  -          "name": "string",
                  -          "guid": "string",
                  -          "orderIndex": 0,
                  -          "startIndex": 0,
                  -          "objectCount": 0,
                  -          "topology": "string",
                  -          "properties": {
                  -            "color": {
                  -              "a": 1,
                  -              "hex": "string"
                  -            },
                  -            "visible": true,
                  -            "pointsize": 0,
                  -            "linewidth": 0,
                  -            "shininess": 0,
                  -            "smooth": true,
                  -            "showEdges": true,
                  -            "wireframe": true
                  -          }
                  -        }
                  -      ],
                  -      "baseProperties": {},
                  -      "globalMeasures": {},
                  -      "isComputedResult": false,
                  -      "viewerLayers": [
                  -        {}
                  -      ],
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ]
                  -    }
                  -  ]
                  -} 
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Line",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "value": [],
                  +  "domain": {}
                  +}
                   

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  @@ -11993,14214 +10426,731 @@

                  Properties

                  - - - - - - - - + + - + + +
                  successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
                  messagestringanonymousSpeckleObject falseEither an error or a confirmation.No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + + - - + + + +
                  resourceSpeckleStreamfalseA stream is essentially a collection of objects, with added properties.NameTypeRequiredDescription
                  » _idstringanonymousobject false No description
                  » ownerstring» typeany false No description
                  » privateboolean» value[number] false No description
                  » anonymousCommentsboolean» domainSpeckleInterval false No description
                  +

                  SpecklePolyline

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Polyline",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "closed": true,
                  +  "value": [],
                  +  "domain": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - - - - - - - + + + + + + - - + + - + + +
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » streamIdstringfalseThe stream's short id.NameTypeRequiredDescription
                  » namestringanonymousSpeckleObject falseThe data stream's nameNo description
                  +

                  and

                  + + - - - - + + + + + + - + - - - - - - - - + + - + - - + + - - + + - - + + - - - - - + +
                  » basePropertiesobjectfalseUnits, tolerances, etc.NameTypeRequiredDescription
                  » globalMeasuresanonymous object falseAny performance measures can go in here.
                  » isComputedResultbooleanfalse No description
                  » parentstring» typeany falseIf this stream is a child, the parent's streamId.No description
                  » canRead[string]» closedboolean false No description
                  » canWrite[string]» value[number] false No description
                  » comments[string]» domainSpeckleInterval false No description
                  » objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  +

                  SpeckleCurve

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Curve",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "degree": 0,
                  +  "periodic": 0,
                  +  "rational": 0,
                  +  "points": [],
                  +  "weights": [],
                  +  "knots": [],
                  +  "domain": {},
                  +  "displayValue": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + + + + + + + + - - + + + +
                  NameTypeRequiredDescription
                  »» _idstringanonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + + +
                  »» ownerstringfalseNo descriptionNameTypeRequiredDescription
                  »» privatebooleananonymousobject false No description
                  »» anonymousCommentsboolean» typeany false No description
                  »» deletedboolean» degreenumber falseControls archival status - does not actually delete anything
                  »» typestringtrueObject's subtype
                  »» hashstringtrueObject's unique hash.No description
                  »» geometryHashstring» periodicnumber falseObject's geometry hashNo description
                  »» applicationIdstring» rationalnumber falseThe id/guid that the origin application identifies this object by.No description
                  »» propertiesobject» points[number] falseThe extra properties field of a speckle object.No description
                  »» parentstring» weights[number] falseIf this object is a child, the parent's objectid.No description
                  »» typeUnknown» knots[number] false No description
                  »» descriptionUnknown» domainSpeckleInterval false No description
                  »» canRead[string]» displayValueSpecklePolyline false No description
                  +

                  SpeckleMesh

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Mesh",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "vertices": [],
                  +  "faces": [],
                  +  "colors": [],
                  +  "textureCoordinates": []
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  »» canWrite[string]falseNo descriptionNameTypeRequiredDescription
                  »» comments[string]anonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + + +
                  »» children[string]falseNo descriptionNameTypeRequiredDescription
                  »» ancestors[string]anonymousobject false No description
                  »» transform[number]» typeany false No description
                  » layers[Layer]» vertices[number] falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].The mesh's vertices array, in a flat array (ie, x1, y1, z1, x2, y2, ...)
                  »» namestring» faces[number] falseLayer's nameThe faces array.
                  »» guidstring» colors[number] falseLayer's guid (must be unique)If any, the colours per vertex.
                  »» orderIndexinteger» textureCoordinates[number] falseDescribes this layer's position in the list of layers.The faces array.
                  +

                  SpeckleBrep

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Brep",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "rawData": {},
                  +  "provenance": "string",
                  +  "displayValue": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + - + + +
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects arrayNameTypeRequiredDescription
                  »» objectCountnumberanonymousSpeckleObject falseHow many objects does this layer have.No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - + - - + + - - + + - + - + - + - - + + - + + +
                  »» topologystringfalseString describing the nested tree structure (GH centric).NameTypeRequiredDescription
                  »» propertiesLayerPropertiesanonymousobject falseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.No description
                  »»» colorobject» typeany false No description
                  »»»» anumber» rawDataobject falsealpha valueThe brep's raw (serialisation) data.
                  »»»» hex» provenance string falsehex color valueA short prefix of where the base64 comes from.
                  »»» visibleboolean» displayValueSpeckleMesh falsetoggles layer visibility.No description
                  +

                  SpeckleExtrusion

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Null",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "capped": true,
                  +  "profile": {},
                  +  "pathStart": {},
                  +  "pathEnd": {},
                  +  "pathCurve": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + - + + +
                  »»» pointsizenumberfalsedefines point size in threejsNameTypeRequiredDescription
                  »»» linewidthnumberanonymousSpeckleObject falsedefines line thickness in threejsNo description
                  +

                  and

                  + + - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + + +
                  »»» shininessnumberfalsesays it all. speckle is superficial.NameTypeRequiredDescription
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» propertiesUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» x-old-refUnknownanonymousobject false No description
                  » viewerLayers[object]» cappedboolean false No description
                  » children[string]» profileSpeckleObject false No description
                  » ancestors[string]» pathStartSpecklePoint false No description
                  resources[SpeckleStream]falseA stream is essentially a collection of objects, with added properties.
                  » _idstring» pathEndSpecklePoint false No description
                  » ownerstring» pathCurveSpeckleObject false No description
                  +

                  SpeckleAnnotation

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Null",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "text": "string",
                  +  "textHeight": 0,
                  +  "fontName": "string",
                  +  "bold": true,
                  +  "italic": true,
                  +  "location": {},
                  +  "plane": {}
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  » privatebooleanfalseNo descriptionNameTypeRequiredDescription
                  » anonymousCommentsbooleananonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + +
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » streamIdstringfalseThe stream's short id.
                  » namestringfalseThe data stream's name
                  » basePropertiesobjectfalseUnits, tolerances, etc.NameTypeRequiredDescription
                  » globalMeasuresanonymous object falseAny performance measures can go in here.
                  » isComputedResultbooleanfalse No description
                  » parent» text string falseIf this stream is a child, the parent's streamId.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]false No description
                  » objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  »» _idstring» textHeightnumber false No description
                  »» owner» fontName string false No description
                  »» private» bold boolean false No description
                  »» anonymousComments» italic boolean false No description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typestringtrueObject's subtype
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]» locationSpecklePoint false No description
                  »» canWrite[string]» planeSpecklePlane false No description
                  +

                  SpeckleBlock

                  +

                  +
                  {
                  +  "_id": "string",
                  +  "owner": "string",
                  +  "private": true,
                  +  "anonymousComments": true,
                  +  "canRead": [],
                  +  "canWrite": [],
                  +  "comments": [],
                  +  "deleted": false,
                  +  "type": "Null",
                  +  "hash": "hash",
                  +  "geometryHash": "Type.hash",
                  +  "applicationId": "GUID",
                  +  "properties": {},
                  +  "parent": "string",
                  +  "children": [],
                  +  "ancestors": [],
                  +  "transform": [],
                  +  "name": "string",
                  +  "description": "string",
                  +  "objects": []
                  +}
                  +
                  +

                  Properties

                  +

                  allOf - discriminator: SpeckleObject.type

                  + + - - - - + + + + + + - - + + + +
                  »» comments[string]falseNo descriptionNameTypeRequiredDescription
                  »» children[string]anonymousSpeckleObject false No description
                  +

                  and

                  + + - - - - + + + + + + - - + + - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  »» ancestors[string]falseNo descriptionNameTypeRequiredDescription
                  »» transform[number]anonymousobject false No description
                  » layers[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
                  »» name» name string falseLayer's nameNo description
                  »» guid» description string falseLayer's guid (must be unique)
                  »» orderIndexintegerfalseDescribes this layer's position in the list of layers.
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects array
                  »» objectCountnumberfalseHow many objects does this layer have.No description
                  »» topologystringfalseString describing the nested tree structure (GH centric).
                  »» propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
                  »»» colorobjectfalseNo description
                  »»»» anumberfalsealpha value
                  »»»» hexstringfalsehex color value
                  »»» visiblebooleanfalsetoggles layer visibility.
                  »»» pointsizenumberfalsedefines point size in threejs
                  »»» linewidthnumberfalsedefines line thickness in threejs
                  »»» shininessnumberfalsesays it all. speckle is superficial.
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» propertiesUnknownfalseNo description
                  » viewerLayers[object]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  »» typeNull
                  »» typeAbstract
                  »» typePlaceholder
                  »» typeBoolean
                  »» typeNumber
                  »» typeString
                  »» typeInterval
                  »» typeInterval2d
                  »» typePoint
                  »» typeVector
                  »» typePlane
                  »» typeLine
                  »» typeRectangle
                  »» typeCircle
                  »» typeArc
                  »» typeEllipse
                  »» typePolycurve
                  »» typeBox
                  »» typePolyline
                  »» typeCurve
                  »» typeMesh
                  »» typeBrep
                  »» typeAnnotation
                  »» typeExtrusion
                  »» typeNull
                  »» typeAbstract
                  »» typePlaceholder
                  »» typeBoolean
                  »» typeNumber
                  »» typeString
                  »» typeInterval
                  »» typeInterval2d
                  »» typePoint
                  »» typeVector
                  »» typePlane
                  »» typeLine
                  »» typeRectangle
                  »» typeCircle
                  »» typeArc
                  »» typeEllipse
                  »» typePolycurve
                  »» typeBox
                  »» typePolyline
                  »» typeCurve
                  »» typeMesh
                  »» typeBrep
                  »» typeAnnotation
                  »» typeExtrusion
                  -

                  ResponseObject

                  -

                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "resources": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
                  messagestringfalseEither an error or a confirmation.
                  resourceSpeckleObjectfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  resources[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  » typeNull
                  » typeAbstract
                  » typePlaceholder
                  » typeBoolean
                  » typeNumber
                  » typeString
                  » typeInterval
                  » typeInterval2d
                  » typePoint
                  » typeVector
                  » typePlane
                  » typeLine
                  » typeRectangle
                  » typeCircle
                  » typeArc
                  » typeEllipse
                  » typePolycurve
                  » typeBox
                  » typePolyline
                  » typeCurve
                  » typeMesh
                  » typeBrep
                  » typeAnnotation
                  » typeExtrusion
                  » typeNull
                  » typeAbstract
                  » typePlaceholder
                  » typeBoolean
                  » typeNumber
                  » typeString
                  » typeInterval
                  » typeInterval2d
                  » typePoint
                  » typeVector
                  » typePlane
                  » typeLine
                  » typeRectangle
                  » typeCircle
                  » typeArc
                  » typeEllipse
                  » typePolycurve
                  » typeBox
                  » typePolyline
                  » typeCurve
                  » typeMesh
                  » typeBrep
                  » typeAnnotation
                  » typeExtrusion
                  -

                  ResponseStreamClone

                  -

                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {},
                  -  "resources": [
                  -    {}
                  -  ],
                  -  "clone": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "streamId": "string",
                  -    "name": "string",
                  -    "objects": [
                  -      {
                  -        "_id": "string",
                  -        "owner": "string",
                  -        "private": true,
                  -        "anonymousComments": true,
                  -        "canRead": [
                  -          "string"
                  -        ],
                  -        "canWrite": [
                  -          "string"
                  -        ],
                  -        "comments": [
                  -          "string"
                  -        ],
                  -        "deleted": false,
                  -        "type": "Null",
                  -        "hash": "hash",
                  -        "geometryHash": "Type.hash",
                  -        "applicationId": "GUID",
                  -        "properties": {},
                  -        "parent": "string",
                  -        "children": [
                  -          "string"
                  -        ],
                  -        "ancestors": [
                  -          "string"
                  -        ],
                  -        "transform": [
                  -          0
                  -        ]
                  -      }
                  -    ],
                  -    "layers": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "baseProperties": {},
                  -    "globalMeasures": {},
                  -    "isComputedResult": false,
                  -    "viewerLayers": [
                  -      {}
                  -    ],
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ]
                  -  },
                  -  "parent": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "streamId": "string",
                  -    "name": "string",
                  -    "objects": [
                  -      {
                  -        "_id": "string",
                  -        "owner": "string",
                  -        "private": true,
                  -        "anonymousComments": true,
                  -        "canRead": [
                  -          "string"
                  -        ],
                  -        "canWrite": [
                  -          "string"
                  -        ],
                  -        "comments": [
                  -          "string"
                  -        ],
                  -        "deleted": false,
                  -        "type": "Null",
                  -        "hash": "hash",
                  -        "geometryHash": "Type.hash",
                  -        "applicationId": "GUID",
                  -        "properties": {},
                  -        "parent": "string",
                  -        "children": [
                  -          "string"
                  -        ],
                  -        "ancestors": [
                  -          "string"
                  -        ],
                  -        "transform": [
                  -          0
                  -        ]
                  -      }
                  -    ],
                  -    "layers": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "baseProperties": {},
                  -    "globalMeasures": {},
                  -    "isComputedResult": false,
                  -    "viewerLayers": [
                  -      {}
                  -    ],
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
                  messagestringfalseEither an error or a confirmation.
                  resourceobjectfalseReturned resource (if querying by id)
                  cloneSpeckleStreamfalseA stream is essentially a collection of objects, with added properties.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » streamIdstringfalseThe stream's short id.
                  » namestringfalseThe data stream's name
                  » basePropertiesobjectfalseUnits, tolerances, etc.
                  » globalMeasuresobjectfalseAny performance measures can go in here.
                  » isComputedResultbooleanfalseNo description
                  » parentstringfalseIf this stream is a child, the parent's streamId.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typestringtrueObject's subtype
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» typeUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  » layers[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
                  »» namestringfalseLayer's name
                  »» guidstringfalseLayer's guid (must be unique)
                  »» orderIndexintegerfalseDescribes this layer's position in the list of layers.
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects array
                  »» objectCountnumberfalseHow many objects does this layer have.
                  »» topologystringfalseString describing the nested tree structure (GH centric).
                  »» propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
                  »»» colorobjectfalseNo description
                  »»»» anumberfalsealpha value
                  »»»» hexstringfalsehex color value
                  »»» visiblebooleanfalsetoggles layer visibility.
                  »»» pointsizenumberfalsedefines point size in threejs
                  »»» linewidthnumberfalsedefines line thickness in threejs
                  »»» shininessnumberfalsesays it all. speckle is superficial.
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» propertiesUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» x-old-refUnknownfalseNo description
                  » viewerLayers[object]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  parentSpeckleStreamfalseA stream is essentially a collection of objects, with added properties.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » streamIdstringfalseThe stream's short id.
                  » namestringfalseThe data stream's name
                  » basePropertiesobjectfalseUnits, tolerances, etc.
                  » globalMeasuresobjectfalseAny performance measures can go in here.
                  » isComputedResultbooleanfalseNo description
                  » parentstringfalseIf this stream is a child, the parent's streamId.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typestringtrueObject's subtype
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  » layers[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
                  »» namestringfalseLayer's name
                  »» guidstringfalseLayer's guid (must be unique)
                  »» orderIndexintegerfalseDescribes this layer's position in the list of layers.
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects array
                  »» objectCountnumberfalseHow many objects does this layer have.
                  »» topologystringfalseString describing the nested tree structure (GH centric).
                  »» propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
                  »»» colorobjectfalseNo description
                  »»»» anumberfalsealpha value
                  »»»» hexstringfalsehex color value
                  »»» visiblebooleanfalsetoggles layer visibility.
                  »»» pointsizenumberfalsedefines point size in threejs
                  »»» linewidthnumberfalsedefines line thickness in threejs
                  »»» shininessnumberfalsesays it all. speckle is superficial.
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» propertiesUnknownfalseNo description
                  » viewerLayers[object]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  resources[object]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  »» typeNull
                  »» typeAbstract
                  »» typePlaceholder
                  »» typeBoolean
                  »» typeNumber
                  »» typeString
                  »» typeInterval
                  »» typeInterval2d
                  »» typePoint
                  »» typeVector
                  »» typePlane
                  »» typeLine
                  »» typeRectangle
                  »» typeCircle
                  »» typeArc
                  »» typeEllipse
                  »» typePolycurve
                  »» typeBox
                  »» typePolyline
                  »» typeCurve
                  »» typeMesh
                  »» typeBrep
                  »» typeAnnotation
                  »» typeExtrusion
                  »» typeNull
                  »» typeAbstract
                  »» typePlaceholder
                  »» typeBoolean
                  »» typeNumber
                  »» typeString
                  »» typeInterval
                  »» typeInterval2d
                  »» typePoint
                  »» typeVector
                  »» typePlane
                  »» typeLine
                  »» typeRectangle
                  »» typeCircle
                  »» typeArc
                  »» typeEllipse
                  »» typePolycurve
                  »» typeBox
                  »» typePolyline
                  »» typeCurve
                  »» typeMesh
                  »» typeBrep
                  »» typeAnnotation
                  »» typeExtrusion
                  -

                  ResponseStreamDiff

                  -

                  -
                  {
                  -  "success": true,
                  -  "message": "string",
                  -  "resource": {},
                  -  "resources": [
                  -    {}
                  -  ],
                  -  "objects": {
                  -    "common": [
                  -      "string"
                  -    ],
                  -    "inA": [
                  -      "string"
                  -    ],
                  -    "inB": [
                  -      "string"
                  -    ]
                  -  },
                  -  "layers": {
                  -    "common": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "inA": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ],
                  -    "inB": [
                  -      {
                  -        "name": "string",
                  -        "guid": "string",
                  -        "orderIndex": 0,
                  -        "startIndex": 0,
                  -        "objectCount": 0,
                  -        "topology": "string",
                  -        "properties": {
                  -          "color": {
                  -            "a": 1,
                  -            "hex": "string"
                  -          },
                  -          "visible": true,
                  -          "pointsize": 0,
                  -          "linewidth": 0,
                  -          "shininess": 0,
                  -          "smooth": true,
                  -          "showEdges": true,
                  -          "wireframe": true
                  -        }
                  -      }
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  successbooleanfalseBesides the http status code, this tells you whether the call succeeded or not.
                  messagestringfalseEither an error or a confirmation.
                  resourceobjectfalseReturned resource (if querying by id)
                  objectsobjectfalseNo description
                  » common[string]falseNo description
                  » inA[string]falseNo description
                  » inB[string]falseNo description
                  layersobjectfalseNo description
                  » common[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
                  »» namestringfalseLayer's name
                  »» guidstringfalseLayer's guid (must be unique)
                  »» orderIndexintegerfalseDescribes this layer's position in the list of layers.
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects array
                  »» objectCountnumberfalseHow many objects does this layer have.
                  »» topologystringfalseString describing the nested tree structure (GH centric).
                  »» propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
                  »»» colorobjectfalseNo description
                  »»»» anumberfalsealpha value
                  »»»» hexstringfalsehex color value
                  »»» visiblebooleanfalsetoggles layer visibility.
                  »»» pointsizenumberfalsedefines point size in threejs
                  »»» linewidthnumberfalsedefines line thickness in threejs
                  »»» shininessnumberfalsesays it all. speckle is superficial.
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» typeUnknownfalseNo description
                  »» propertiesUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» x-old-refUnknownfalseNo description
                  » inA[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
                  »» namestringfalseLayer's name
                  »» guidstringfalseLayer's guid (must be unique)
                  »» orderIndexintegerfalseDescribes this layer's position in the list of layers.
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects array
                  »» objectCountnumberfalseHow many objects does this layer have.
                  »» topologystringfalseString describing the nested tree structure (GH centric).
                  »» propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
                  »»» colorobjectfalseNo description
                  »»»» anumberfalsealpha value
                  »»»» hexstringfalsehex color value
                  »»» visiblebooleanfalsetoggles layer visibility.
                  »»» pointsizenumberfalsedefines point size in threejs
                  »»» linewidthnumberfalsedefines line thickness in threejs
                  »»» shininessnumberfalsesays it all. speckle is superficial.
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» propertiesUnknownfalseNo description
                  » inB[Layer]falseDescribes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
                  »» namestringfalseLayer's name
                  »» guidstringfalseLayer's guid (must be unique)
                  »» orderIndexintegerfalseDescribes this layer's position in the list of layers.
                  »» startIndexnumberfalseThe index of the first object relative to the stream's objects array
                  »» objectCountnumberfalseHow many objects does this layer have.
                  »» topologystringfalseString describing the nested tree structure (GH centric).
                  »» propertiesLayerPropertiesfalseHolds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
                  »»» colorobjectfalseNo description
                  »»»» anumberfalsealpha value
                  »»»» hexstringfalsehex color value
                  »»» visiblebooleanfalsetoggles layer visibility.
                  »»» pointsizenumberfalsedefines point size in threejs
                  »»» linewidthnumberfalsedefines line thickness in threejs
                  »»» shininessnumberfalsesays it all. speckle is superficial.
                  »»» smoothbooleanfalsesmooth shading toggle
                  »»» showEdgesbooleanfalsedisplay edges or not yo.
                  »»» wireframebooleanfalsei'm bored.
                  »» propertiesUnknownfalseNo description
                  resources[object]falseNo description
                  -

                  SpeckleObject

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Null",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typestringtrueObject's subtype
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  typeNull
                  typeAbstract
                  typePlaceholder
                  typeBoolean
                  typeNumber
                  typeString
                  typeInterval
                  typeInterval2d
                  typePoint
                  typeVector
                  typePlane
                  typeLine
                  typeRectangle
                  typeCircle
                  typeArc
                  typeEllipse
                  typePolycurve
                  typeBox
                  typePolyline
                  typeCurve
                  typeMesh
                  typeBrep
                  typeAnnotation
                  typeExtrusion
                  -

                  SpeckleAbstract

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Abstract",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "_type": "string",
                  -  "assembly": "string"
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  _typestringfalsethe original type of the object
                  assemblystringfalsethe original assembly of this object
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpecklePlaceholder

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Abstract",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleBoolean

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Boolean",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "value": true
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  valuebooleanfalseNo description
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleNumber

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Number",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "value": 0
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  valuenumberfalseA number. Can be float, double, etc.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleString

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "String",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "value": "string"
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  valuestringfalseA string.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleInterval

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Interval",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "start": 0,
                  -  "end": 0
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  startnumberfalseNo description
                  endnumberfalseNo description
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleInterval2d

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Null",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "U": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Interval",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "start": 0,
                  -    "end": 0
                  -  },
                  -  "V": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Interval",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "start": 0,
                  -    "end": 0
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typestringtrueObject's subtype
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  USpeckleIntervalfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » startnumberfalseNo description
                  » endnumberfalseNo description
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  VSpeckleIntervalfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » startnumberfalseNo description
                  » endnumberfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  typeNull
                  typeAbstract
                  typePlaceholder
                  typeBoolean
                  typeNumber
                  typeString
                  typeInterval
                  typeInterval2d
                  typePoint
                  typeVector
                  typePlane
                  typeLine
                  typeRectangle
                  typeCircle
                  typeArc
                  typeEllipse
                  typePolycurve
                  typeBox
                  typePolyline
                  typeCurve
                  typeMesh
                  typeBrep
                  typeAnnotation
                  typeExtrusion
                  -

                  SpecklePoint

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Point",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "value": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  value[number]falseNo description
                  -

                  SpeckleVector

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Vector",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "value": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  value[number]falseNo description
                  -

                  SpecklePlane

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Plane",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "Origin": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Point",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "Normal": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Vector",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "Xdir": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Vector",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "Ydir": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Vector",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  OriginSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleCircle

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Circle",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "radius": 0,
                  -  "center": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Point",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "normal": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Vector",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  radiusnumberfalseNo description
                  centerSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  normalSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleArc

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Arc",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "radius": 0,
                  -  "startAngle": 0,
                  -  "endAngle": 0,
                  -  "angleRadians": 0,
                  -  "plane": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Plane",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "Origin": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Point",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Normal": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Xdir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Ydir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    }
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  radiusnumberfalseNo description
                  startAnglenumberfalseNo description
                  endAnglenumberfalseNo description
                  angleRadiansnumberfalseNo description
                  planeSpecklePlanefalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » OriginSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» typeUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleEllipse

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Ellipse",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "firstRadius": 0,
                  -  "secondRadius": 0,
                  -  "plane": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Plane",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "Origin": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Point",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Normal": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Xdir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Ydir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    }
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  firstRadiusnumberfalseNo description
                  secondRadiusnumberfalseNo description
                  planeSpecklePlanefalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » OriginSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» typeUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpecklePolycurve

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Polycurve",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "segments": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  segments[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  » typeNull
                  » typeAbstract
                  » typePlaceholder
                  » typeBoolean
                  » typeNumber
                  » typeString
                  » typeInterval
                  » typeInterval2d
                  » typePoint
                  » typeVector
                  » typePlane
                  » typeLine
                  » typeRectangle
                  » typeCircle
                  » typeArc
                  » typeEllipse
                  » typePolycurve
                  » typeBox
                  » typePolyline
                  » typeCurve
                  » typeMesh
                  » typeBrep
                  » typeAnnotation
                  » typeExtrusion
                  -

                  SpeckleBox

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Box",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "basePlane": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Plane",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "Origin": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Point",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Normal": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Xdir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Ydir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    }
                  -  },
                  -  "xSize": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Interval",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "start": 0,
                  -    "end": 0
                  -  },
                  -  "ySize": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Interval",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "start": 0,
                  -    "end": 0
                  -  },
                  -  "zSize": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Interval",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "start": 0,
                  -    "end": 0
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  basePlaneSpecklePlanefalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » OriginSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» typeUnknownfalseNo description
                  »» descriptionUnknownfalseNo description
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  xSizeSpeckleIntervalfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » startnumberfalseNo description
                  » endnumberfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  ySizeSpeckleIntervalfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » startnumberfalseNo description
                  » endnumberfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  zSizeSpeckleIntervalfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » startnumberfalseNo description
                  » endnumberfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleLine

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Line",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "value": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  value[number]falseNo description
                  -

                  SpecklePolyline

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Polyline",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "closed": true,
                  -  "value": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  closedbooleanfalseNo description
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  value[number]falseNo description
                  -

                  SpeckleCurve

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Curve",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "degree": 0,
                  -  "periodic": 0,
                  -  "rational": 0,
                  -  "points": [
                  -    0
                  -  ],
                  -  "weights": [
                  -    0
                  -  ],
                  -  "knots": [
                  -    0
                  -  ],
                  -  "domain": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Interval",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "start": 0,
                  -    "end": 0
                  -  },
                  -  "displayValue": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Polyline",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "closed": true,
                  -    "value": [
                  -      0
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  degreenumberfalseNo description
                  periodicnumberfalseNo description
                  rationalnumberfalseNo description
                  domainSpeckleIntervalfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » startnumberfalseNo description
                  » endnumberfalseNo description
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  displayValueSpecklePolylinefalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » closedbooleanfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  points[number]falseNo description
                  weights[number]falseNo description
                  knots[number]falseNo description
                  -

                  SpeckleMesh

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Mesh",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "vertices": [
                  -    0
                  -  ],
                  -  "faces": [
                  -    0
                  -  ],
                  -  "colors": [
                  -    0
                  -  ],
                  -  "textureCoordinates": [
                  -    0
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  vertices[number]falseNo description
                  faces[number]falseNo description
                  colors[number]falseNo description
                  textureCoordinates[number]falseNo description
                  -

                  SpeckleBrep

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Brep",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "rawData": {},
                  -  "provenance": "string",
                  -  "displayValue": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Mesh",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "vertices": [
                  -      0
                  -    ],
                  -    "faces": [
                  -      0
                  -    ],
                  -    "colors": [
                  -      0
                  -    ],
                  -    "textureCoordinates": [
                  -      0
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typeUnknowntrueNo description
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  rawDataobjectfalseThe brep's raw (serialisation) data.
                  provenancestringfalseA short prefix of where the base64 comes from.
                  displayValueSpeckleMeshfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » vertices[number]falseNo description
                  » faces[number]falseNo description
                  » colors[number]falseNo description
                  » textureCoordinates[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  SpeckleExtrusion

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Null",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "capped": true,
                  -  "profile": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  },
                  -  "pathStart": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Point",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "pathEnd": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Point",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "pathCurve": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Null",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ]
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typestringtrueObject's subtype
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  cappedbooleanfalseNo description
                  profileSpeckleObjectfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  pathStartSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  pathEndSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  pathCurveSpeckleObjectfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  typeNull
                  typeAbstract
                  typePlaceholder
                  typeBoolean
                  typeNumber
                  typeString
                  typeInterval
                  typeInterval2d
                  typePoint
                  typeVector
                  typePlane
                  typeLine
                  typeRectangle
                  typeCircle
                  typeArc
                  typeEllipse
                  typePolycurve
                  typeBox
                  typePolyline
                  typeCurve
                  typeMesh
                  typeBrep
                  typeAnnotation
                  typeExtrusion
                  » typeNull
                  » typeAbstract
                  » typePlaceholder
                  » typeBoolean
                  » typeNumber
                  » typeString
                  » typeInterval
                  » typeInterval2d
                  » typePoint
                  » typeVector
                  » typePlane
                  » typeLine
                  » typeRectangle
                  » typeCircle
                  » typeArc
                  » typeEllipse
                  » typePolycurve
                  » typeBox
                  » typePolyline
                  » typeCurve
                  » typeMesh
                  » typeBrep
                  » typeAnnotation
                  » typeExtrusion
                  » typeNull
                  » typeAbstract
                  » typePlaceholder
                  » typeBoolean
                  » typeNumber
                  » typeString
                  » typeInterval
                  » typeInterval2d
                  » typePoint
                  » typeVector
                  » typePlane
                  » typeLine
                  » typeRectangle
                  » typeCircle
                  » typeArc
                  » typeEllipse
                  » typePolycurve
                  » typeBox
                  » typePolyline
                  » typeCurve
                  » typeMesh
                  » typeBrep
                  » typeAnnotation
                  » typeExtrusion
                  -

                  SpeckleAnnotation

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Null",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "text": "string",
                  -  "textHeight": 0,
                  -  "fontName": "string",
                  -  "bold": true,
                  -  "italic": true,
                  -  "location": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Point",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "value": [
                  -      0
                  -    ]
                  -  },
                  -  "plane": {
                  -    "_id": "string",
                  -    "owner": "string",
                  -    "private": true,
                  -    "anonymousComments": true,
                  -    "canRead": [
                  -      "string"
                  -    ],
                  -    "canWrite": [
                  -      "string"
                  -    ],
                  -    "comments": [
                  -      "string"
                  -    ],
                  -    "deleted": false,
                  -    "type": "Plane",
                  -    "hash": "hash",
                  -    "geometryHash": "Type.hash",
                  -    "applicationId": "GUID",
                  -    "properties": {},
                  -    "parent": "string",
                  -    "children": [
                  -      "string"
                  -    ],
                  -    "ancestors": [
                  -      "string"
                  -    ],
                  -    "transform": [
                  -      0
                  -    ],
                  -    "Origin": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Point",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Normal": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Xdir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    },
                  -    "Ydir": {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Vector",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ],
                  -      "value": [
                  -        0
                  -      ]
                  -    }
                  -  }
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typestringtrueObject's subtype
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  textstringfalseNo description
                  textHeightnumberfalseNo description
                  fontNamestringfalseNo description
                  boldbooleanfalseNo description
                  italicbooleanfalseNo description
                  locationSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » typeUnknownfalseNo description
                  » descriptionUnknownfalseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  » value[number]falseNo description
                  planeSpecklePlanefalseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typeUnknowntrueNo description
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » OriginSpecklePointfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » NormalSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » XdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » YdirSpeckleVectorfalseBase class that is inherited by all other Speckle objects.
                  »» _idstringfalseNo description
                  »» ownerstringfalseNo description
                  »» privatebooleanfalseNo description
                  »» anonymousCommentsbooleanfalseNo description
                  »» deletedbooleanfalseControls archival status - does not actually delete anything
                  »» typeUnknowntrueNo description
                  »» hashstringtrueObject's unique hash.
                  »» geometryHashstringfalseObject's geometry hash
                  »» applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  »» propertiesobjectfalseThe extra properties field of a speckle object.
                  »» parentstringfalseIf this object is a child, the parent's objectid.
                  »» canRead[string]falseNo description
                  »» canWrite[string]falseNo description
                  »» comments[string]falseNo description
                  »» children[string]falseNo description
                  »» ancestors[string]falseNo description
                  »» transform[number]falseNo description
                  »» value[number]falseNo description
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]falseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  typeNull
                  typeAbstract
                  typePlaceholder
                  typeBoolean
                  typeNumber
                  typeString
                  typeInterval
                  typeInterval2d
                  typePoint
                  typeVector
                  typePlane
                  typeLine
                  typeRectangle
                  typeCircle
                  typeArc
                  typeEllipse
                  typePolycurve
                  typeBox
                  typePolyline
                  typeCurve
                  typeMesh
                  typeBrep
                  typeAnnotation
                  typeExtrusion
                  -

                  SpeckleBlock

                  -

                  -
                  {
                  -  "_id": "string",
                  -  "owner": "string",
                  -  "private": true,
                  -  "anonymousComments": true,
                  -  "canRead": [
                  -    "string"
                  -  ],
                  -  "canWrite": [
                  -    "string"
                  -  ],
                  -  "comments": [
                  -    "string"
                  -  ],
                  -  "deleted": false,
                  -  "type": "Null",
                  -  "hash": "hash",
                  -  "geometryHash": "Type.hash",
                  -  "applicationId": "GUID",
                  -  "properties": {},
                  -  "parent": "string",
                  -  "children": [
                  -    "string"
                  -  ],
                  -  "ancestors": [
                  -    "string"
                  -  ],
                  -  "transform": [
                  -    0
                  -  ],
                  -  "name": "string",
                  -  "description": "string",
                  -  "objects": [
                  -    {
                  -      "_id": "string",
                  -      "owner": "string",
                  -      "private": true,
                  -      "anonymousComments": true,
                  -      "canRead": [
                  -        "string"
                  -      ],
                  -      "canWrite": [
                  -        "string"
                  -      ],
                  -      "comments": [
                  -        "string"
                  -      ],
                  -      "deleted": false,
                  -      "type": "Null",
                  -      "hash": "hash",
                  -      "geometryHash": "Type.hash",
                  -      "applicationId": "GUID",
                  -      "properties": {},
                  -      "parent": "string",
                  -      "children": [
                  -        "string"
                  -      ],
                  -      "ancestors": [
                  -        "string"
                  -      ],
                  -      "transform": [
                  -        0
                  -      ]
                  -    }
                  -  ]
                  -} 
                  -
                  -

                  Properties

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + -
                  NameTypeRequiredDescription
                  _idstringfalseNo description
                  ownerstringfalseNo description
                  privatebooleanfalseNo description
                  anonymousCommentsbooleanfalseNo description
                  deletedbooleanfalseControls archival status - does not actually delete anything
                  typestringtrueObject's subtype
                  hashstringtrueObject's unique hash.
                  geometryHashstringfalseObject's geometry hash
                  applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  propertiesobjectfalseThe extra properties field of a speckle object.
                  parentstringfalseIf this object is a child, the parent's objectid.
                  namestringfalseNo description
                  descriptionstringfalseNo description
                  typeUnknownfalseNo description
                  descriptionUnknownfalseNo description
                  canRead[string]falseNo description
                  canWrite[string]falseNo description
                  comments[string]falseNo description
                  children[string]falseNo description
                  ancestors[string]falseNo description
                  transform[number]falseNo description
                  objects[SpeckleObject]falseBase class that is inherited by all other Speckle objects.
                  » _idstringfalseNo description
                  » ownerstringfalseNo description
                  » privatebooleanfalseNo description
                  » anonymousCommentsbooleanfalseNo description
                  » deletedbooleanfalseControls archival status - does not actually delete anything
                  » typestringtrueObject's subtype
                  » hashstringtrueObject's unique hash.
                  » geometryHashstringfalseObject's geometry hash
                  » applicationIdstringfalseThe id/guid that the origin application identifies this object by.
                  » propertiesobjectfalseThe extra properties field of a speckle object.
                  » parentstringfalseIf this object is a child, the parent's objectid.
                  » canRead[string]falseNo description
                  » canWrite[string]falseNo description
                  » comments[string]falseNo description
                  » children[string]falseNo description
                  » ancestors[string]falseNo description
                  » transform[number]» objects[SpeckleObject] false No description
                  -

                  Enumerated Values

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  PropertyValue
                  typeNull
                  typeAbstract
                  typePlaceholder
                  typeBoolean
                  typeNumber
                  typeString
                  typeInterval
                  typeInterval2d
                  typePoint
                  typeVector
                  typePlane
                  typeLine
                  typeRectangle
                  typeCircle
                  typeArc
                  typeEllipse
                  typePolycurve
                  typeBox
                  typePolyline
                  typeCurve
                  typeMesh
                  typeBrep
                  typeAnnotation
                  typeExtrusion
                  » typeNull
                  » typeAbstract
                  » typePlaceholder
                  » typeBoolean
                  » typeNumber
                  » typeString
                  » typeInterval
                  » typeInterval2d
                  » typePoint
                  » typeVector
                  » typePlane
                  » typeLine
                  » typeRectangle
                  » typeCircle
                  » typeArc
                  » typeEllipse
                  » typePolycurve
                  » typeBox
                  » typePolyline
                  » typeCurve
                  » typeMesh
                  » typeBrep
                  » typeAnnotation
                  » typeExtrusion
                  diff --git a/docs/source/javascripts/all.bundle.inc b/docs/source/javascripts/all.bundle.inc new file mode 100644 index 0000000..5111473 --- /dev/null +++ b/docs/source/javascripts/all.bundle.inc @@ -0,0 +1 @@ + diff --git a/docs/source/javascripts/all.inc b/docs/source/javascripts/all.inc new file mode 100644 index 0000000..58353c2 --- /dev/null +++ b/docs/source/javascripts/all.inc @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/docs/source/javascripts/all.js b/docs/source/javascripts/all.js new file mode 100644 index 0000000..5f5d406 --- /dev/null +++ b/docs/source/javascripts/all.js @@ -0,0 +1,2 @@ +//= require ./all_nosearch +//= require ./app/_search diff --git a/docs/source/javascripts/all_nosearch.inc b/docs/source/javascripts/all_nosearch.inc new file mode 100644 index 0000000..a3f2146 --- /dev/null +++ b/docs/source/javascripts/all_nosearch.inc @@ -0,0 +1,18 @@ + + + + + diff --git a/docs/source/javascripts/all_nosearch.js b/docs/source/javascripts/all_nosearch.js new file mode 100644 index 0000000..b18c1d8 --- /dev/null +++ b/docs/source/javascripts/all_nosearch.js @@ -0,0 +1,16 @@ +//= require ./lib/_energize +//= require ./app/_toc +//= require ./app/_lang + +$(function() { + loadToc($('#toc'), '.toc-link', '.toc-list-h2', 10); + setupLanguages($('body').data('languages')); + $('.content').imagesLoaded( function() { + window.recacheHeights(); + window.refreshToc(); + }); +}); + +window.onpopstate = function() { + activateLanguage(getLanguageFromQueryString()); +}; diff --git a/docs/source/javascripts/app/_lang.js b/docs/source/javascripts/app/_lang.js new file mode 100644 index 0000000..0fbaaef --- /dev/null +++ b/docs/source/javascripts/app/_lang.js @@ -0,0 +1,164 @@ +//= require ../lib/_jquery + +/* +Copyright 2008-2013 Concur Technologies, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); you may +not use this file except in compliance with the License. You may obtain +a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +*/ +;(function () { + 'use strict'; + + var languages = []; + + window.setupLanguages = setupLanguages; + window.activateLanguage = activateLanguage; + window.getLanguageFromQueryString = getLanguageFromQueryString; + + function activateLanguage(language) { + if (!language) return; + if (language === "") return; + + $(".lang-selector a").removeClass('active'); + $(".lang-selector a[data-language-name='" + language + "']").addClass('active'); + for (var i=0; i < languages.length; i++) { + $(".highlight.tab-" + languages[i]).hide(); + $(".lang-specific." + languages[i]).hide(); + } + $(".highlight.tab-" + language).show(); + $(".lang-specific." + language).show(); + + window.recacheHeights(); + + // scroll to the new location of the position + if ($(window.location.hash).get(0)) { + $(window.location.hash).get(0).scrollIntoView(true); + } + } + + // parseURL and stringifyURL are from https://github.com/sindresorhus/query-string + // MIT licensed + // https://github.com/sindresorhus/query-string/blob/7bee64c16f2da1a326579e96977b9227bf6da9e6/license + function parseURL(str) { + if (typeof str !== 'string') { + return {}; + } + + str = str.trim().replace(/^(\?|#|&)/, ''); + + if (!str) { + return {}; + } + + return str.split('&').reduce(function (ret, param) { + var parts = param.replace(/\+/g, ' ').split('='); + var key = parts[0]; + var val = parts[1]; + + key = decodeURIComponent(key); + // missing `=` should be `null`: + // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters + val = val === undefined ? null : decodeURIComponent(val); + + if (!ret.hasOwnProperty(key)) { + ret[key] = val; + } else if (Array.isArray(ret[key])) { + ret[key].push(val); + } else { + ret[key] = [ret[key], val]; + } + + return ret; + }, {}); + }; + + function stringifyURL(obj) { + return obj ? Object.keys(obj).sort().map(function (key) { + var val = obj[key]; + + if (Array.isArray(val)) { + return val.sort().map(function (val2) { + return encodeURIComponent(key) + '=' + encodeURIComponent(val2); + }).join('&'); + } + + return encodeURIComponent(key) + '=' + encodeURIComponent(val); + }).join('&') : ''; + }; + + // gets the language set in the query string + function getLanguageFromQueryString() { + if (location.search.length >= 1) { + var language = parseURL(location.search).language; + if (language) { + return language; + } else if (jQuery.inArray(location.search.substr(1), languages) != -1) { + return location.search.substr(1); + } + } + + return false; + } + + // returns a new query string with the new language in it + function generateNewQueryString(language) { + var url = parseURL(location.search); + if (url.language) { + url.language = language; + return stringifyURL(url); + } + return language; + } + + // if a button is clicked, add the state to the history + function pushURL(language) { + if (!history) { return; } + var hash = window.location.hash; + if (hash) { + hash = hash.replace(/^#+/, ''); + } + history.pushState({}, '', '?' + generateNewQueryString(language) + '#' + hash); + + // save language as next default + localStorage.setItem("language", language); + } + + function setupLanguages(l) { + var defaultLanguage = localStorage.getItem("language"); + + languages = l; + + var presetLanguage = getLanguageFromQueryString(); + if (presetLanguage) { + // the language is in the URL, so use that language! + activateLanguage(presetLanguage); + + localStorage.setItem("language", presetLanguage); + } else if ((defaultLanguage !== null) && (jQuery.inArray(defaultLanguage, languages) != -1)) { + // the language was the last selected one saved in localstorage, so use that language! + activateLanguage(defaultLanguage); + } else { + // no language selected, so use the default + activateLanguage(languages[0]); + } + } + + // if we click on a language tab, activate that language + $(function() { + $(".lang-selector a").on("click", function() { + var language = $(this).data("language-name"); + pushURL(language); + activateLanguage(language); + return false; + }); + }); +})(); diff --git a/docs/source/javascripts/app/_search.js b/docs/source/javascripts/app/_search.js new file mode 100644 index 0000000..9ff4233 --- /dev/null +++ b/docs/source/javascripts/app/_search.js @@ -0,0 +1,98 @@ +//= require ../lib/_lunr +//= require ../lib/_jquery +//= require ../lib/_jquery.highlight +;(function () { + 'use strict'; + + var content, searchResults; + var highlightOpts = { element: 'span', className: 'search-highlight' }; + var searchDelay = 0; + var timeoutHandle = 0; + + var index = new lunr.Index(); + + index.ref('id'); + index.field('title', { boost: 10 }); + index.field('body'); + index.pipeline.add(lunr.trimmer, lunr.stopWordFilter); + + $(populate); + $(bind); + + function populate() { + $('h1, h2').each(function() { + var title = $(this); + var body = title.nextUntil('h1, h2'); + index.add({ + id: title.prop('id'), + title: title.text(), + body: body.text() + }); + }); + + determineSearchDelay(); + } + function determineSearchDelay() { + if(index.tokenStore.length>5000) { + searchDelay = 300; + } + } + + function bind() { + content = $('.content'); + searchResults = $('.search-results'); + + $('#input-search').on('keyup',function(e) { + var wait = function() { + return function(executingFunction, waitTime){ + clearTimeout(timeoutHandle); + timeoutHandle = setTimeout(executingFunction, waitTime); + }; + }(); + wait(function(){ + search(e); + }, searchDelay ); + }); + } + + function search(event) { + + var searchInput = $('#input-search')[0]; + + unhighlight(); + searchResults.addClass('visible'); + + // ESC clears the field + if (event.keyCode === 27) searchInput.value = ''; + + if (searchInput.value) { + var results = index.search(searchInput.value).filter(function(r) { + return r.score > 0.0001; + }); + + if (results.length) { + searchResults.empty(); + $.each(results, function (index, result) { + var elem = document.getElementById(result.ref); + searchResults.append("
                • " + $(elem).text() + "
                • "); + }); + highlight.call(searchInput); + } else { + searchResults.html('
                • '); + $('.search-results li').text('No Results Found for "' + searchInput.value + '"'); + } + } else { + unhighlight(); + searchResults.removeClass('visible'); + } + } + + function highlight() { + if (this.value) content.highlight(this.value, highlightOpts); + } + + function unhighlight() { + content.unhighlight(highlightOpts); + } +})(); + diff --git a/docs/source/javascripts/app/_toc.js b/docs/source/javascripts/app/_toc.js new file mode 100644 index 0000000..f1937bc --- /dev/null +++ b/docs/source/javascripts/app/_toc.js @@ -0,0 +1,114 @@ +//= require ../lib/_jquery +//= require ../lib/_imagesloaded.min +;(function () { + 'use strict'; + + var loaded = false; + + var debounce = function(func, waitTime) { + var timeout = false; + return function() { + if (timeout === false) { + setTimeout(function() { + func(); + timeout = false; + }, waitTime); + timeout = true; + } + }; + }; + + var closeToc = function() { + $(".toc-wrapper").removeClass('open'); + $("#nav-button").removeClass('open'); + }; + + function loadToc($toc, tocLinkSelector, tocListSelector, scrollOffset) { + var headerHeights = {}; + var pageHeight = 0; + var windowHeight = 0; + var originalTitle = document.title; + + var recacheHeights = function() { + headerHeights = {}; + pageHeight = $(document).height(); + windowHeight = $(window).height(); + + $toc.find(tocLinkSelector).each(function() { + var targetId = $(this).attr('href'); + if (targetId[0] === "#") { + headerHeights[targetId] = $(targetId).offset().top; + } + }); + }; + + var refreshToc = function() { + var currentTop = $(document).scrollTop() + scrollOffset; + + if (currentTop + windowHeight >= pageHeight) { + // at bottom of page, so just select last header by making currentTop very large + // this fixes the problem where the last header won't ever show as active if its content + // is shorter than the window height + currentTop = pageHeight + 1000; + } + + var best = null; + for (var name in headerHeights) { + if ((headerHeights[name] < currentTop && headerHeights[name] > headerHeights[best]) || best === null) { + best = name; + } + } + + // Catch the initial load case + if (currentTop == scrollOffset && !loaded) { + best = window.location.hash; + loaded = true; + } + + var $best = $toc.find("[href='" + best + "']").first(); + if (!$best.hasClass("active")) { + // .active is applied to the ToC link we're currently on, and its parent
                    s selected by tocListSelector + // .active-expanded is applied to the ToC links that are parents of this one + $toc.find(".active").removeClass("active"); + $toc.find(".active-parent").removeClass("active-parent"); + $best.addClass("active"); + $best.parents(tocListSelector).addClass("active").siblings(tocLinkSelector).addClass('active-parent'); + $best.siblings(tocListSelector).addClass("active"); + $toc.find(tocListSelector).filter(":not(.active)").slideUp(150); + $toc.find(tocListSelector).filter(".active").slideDown(150); + // TODO remove classnames + document.title = $best.data("title") + " – " + originalTitle; + } + }; + + var makeToc = function() { + recacheHeights(); + refreshToc(); + + $("#nav-button").click(function() { + $(".toc-wrapper").toggleClass('open'); + $("#nav-button").toggleClass('open'); + return false; + }); + $(".page-wrapper").click(closeToc); + $(".toc-link").click(closeToc); + + // reload immediately after scrolling on toc click + $toc.find(tocLinkSelector).click(function() { + setTimeout(function() { + refreshToc(); + }, 0); + }); + + $(window).scroll(debounce(refreshToc, 200)); + $(window).resize(debounce(recacheHeights, 200)); + }; + + makeToc(); + + window.recacheHeights = recacheHeights; + window.refreshToc = refreshToc; + } + + window.loadToc = loadToc; +})(); diff --git a/package.json b/package.json index 28cecd3..d6a9ae5 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,7 @@ "dependencies": { "widdershins": "^3.0.7" }, - "devDependencies": {}, "scripts": { - "build-shins": "widdershins SpeckleV1OpenApiSpecs.yaml -o SpeckleV1OpenApiSpecs.md" + "build-shins": "widdershins --maxDepth 1 SpeckleV1OpenApiSpecs.yaml -o SpeckleV1OpenApiSpecs.md && echo 'Building html...' && cd shins && node shins ../SpeckleV1OpenApiSpecs.md && echo 'Done building html. Copying in docs folder now.' && rm ../docs/index.html && cp index.html ../docs && echo 'Done. Ready to push.'" } }