From b609d437715fe77e12696d1233d21aee9f0f2eb2 Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Mon, 21 May 2018 12:19:55 +0100 Subject: [PATCH 1/3] adds domains to all curve like entities - fixes #25 --- SpeckleV1OpenApiSpecs.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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: From 4ec8451ed0d39c3779b20eda08e34ee0067b5b8b Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Mon, 21 May 2018 12:29:51 +0100 Subject: [PATCH 2/3] removed old docs folder --- docs-old/index.html | 18104 ------------------------ docs-old/pub/css/darkula.css | 152 - docs-old/pub/css/obsidian.css | 152 - docs-old/pub/css/print.css | 495 - docs-old/pub/css/print_overrides.css | 1 - docs-old/pub/css/screen.css | 796 -- docs-old/pub/css/screen_overrides.css | 8 - docs-old/pub/css/theme_overrides.css | 1 - docs-old/pub/js/shins.js | 4 - docs-old/source/fonts/slate.eot | Bin 1876 -> 0 bytes docs-old/source/fonts/slate.svg | 14 - docs-old/source/fonts/slate.ttf | Bin 1720 -> 0 bytes docs-old/source/fonts/slate.woff | Bin 1796 -> 0 bytes docs-old/source/fonts/slate.woff2 | Bin 796 -> 0 bytes docs-old/source/images/logo-old.png | Bin 10274 -> 0 bytes docs-old/source/images/logo.png | Bin 2180 -> 0 bytes docs-old/source/images/navbar.png | Bin 96 -> 0 bytes 17 files changed, 19727 deletions(-) delete mode 100644 docs-old/index.html delete mode 100644 docs-old/pub/css/darkula.css delete mode 100644 docs-old/pub/css/obsidian.css delete mode 100644 docs-old/pub/css/print.css delete mode 100644 docs-old/pub/css/print_overrides.css delete mode 100644 docs-old/pub/css/screen.css delete mode 100644 docs-old/pub/css/screen_overrides.css delete mode 100644 docs-old/pub/css/theme_overrides.css delete mode 100644 docs-old/pub/js/shins.js delete mode 100644 docs-old/source/fonts/slate.eot delete mode 100644 docs-old/source/fonts/slate.svg delete mode 100644 docs-old/source/fonts/slate.ttf delete mode 100644 docs-old/source/fonts/slate.woff delete mode 100644 docs-old/source/fonts/slate.woff2 delete mode 100644 docs-old/source/images/logo-old.png delete mode 100644 docs-old/source/images/logo.png delete mode 100644 docs-old/source/images/navbar.png 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

    -
      -
    • API Key -
        -
      • Parameter Name: Authorization, in: header.
      • -
      -
    • -
    -

    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.'" } }