Created
January 22, 2019 15:02
-
-
Save bigdoods/aae6079bf88c00dac1e77ea6fd3a1e3d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| swagger: '2.0' | |
| info: | |
| version: 1.0.0-beta | |
| title: Speckle OpenApi Specs | |
| description: |- | |
| Documentation & specifications for the Speckle Server & Speckle Objects. | |
| contact: | |
| name: SpeckleWorks | |
| url: 'https://speckle.works' | |
| email: [email protected] | |
| host: 'localhost:3001' | |
| basePath: /api/v1 | |
| tags: | |
| - name: Accounts | |
| description: Register, Login and more. | |
| - name: Clients | |
| description: Create, get and update application clients. | |
| - name: Projects | |
| description: Create, get and update projects. | |
| - name: Comments | |
| description: Create, get and update comments. | |
| - name: Streams | |
| description: Create, get and update streams. | |
| - name: Objects | |
| description: Create, get and update objects. | |
| schemes: | |
| - http | |
| - https | |
| consumes: | |
| - application/json | |
| produces: | |
| - application/json | |
| security: | |
| - JWT Token Auth: [] | |
| securityDefinitions: | |
| JWT Token Auth: | |
| type: apiKey | |
| name: Authorization | |
| in: header | |
| paths: | |
| # ACCOUNTS | |
| /accounts/register: | |
| post: | |
| tags: | |
| - Accounts | |
| summary: UserRegister | |
| description: Registers a new user. | |
| operationId: UserRegister | |
| parameters: | |
| - name: body | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/User' | |
| responses: | |
| '200': | |
| description: New user successfully registered. | |
| schema: | |
| $ref: '#/definitions/ResponseUser' | |
| '400': | |
| description: Failed to register a new user. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| /accounts/login: | |
| post: | |
| tags: | |
| - Accounts | |
| summary: UserLogin | |
| description: Login and get jwt token. | |
| operationId: UserLogin | |
| parameters: | |
| - name: body | |
| in: body | |
| required: true | |
| description: The only required elements are email and password. | |
| schema: | |
| $ref: '#/definitions/User' | |
| responses: | |
| '200': | |
| description: You've logged in. | |
| schema: | |
| $ref: '#/definitions/ResponseUser' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| /accounts/search: | |
| post: | |
| tags: | |
| - Accounts | |
| summary: UserSearch | |
| description: Search for a user by substrings of name, surname, and company. | |
| operationId: UserSearch | |
| consumes: | |
| - application/json | |
| produces: | |
| - application/json | |
| parameters: | |
| - in: body | |
| name: user | |
| required: true | |
| description: No elements are required. The name, surname, and company are used to constrain the search. | |
| schema: | |
| $ref: '#/definitions/User' | |
| responses: | |
| '200': | |
| description: New user successfully registered. | |
| schema: | |
| $ref: '#/definitions/ResponseUser' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| /accounts: | |
| get: | |
| tags: | |
| - Accounts | |
| description: Gets your profile. | |
| summary: UserGet | |
| operationId: UserGet | |
| responses: | |
| '200': | |
| description: New user successfully registered. | |
| schema: | |
| $ref: '#/definitions/ResponseUser' | |
| '400': | |
| description: Fail. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| put: | |
| tags: | |
| - Accounts | |
| description: Updates your profile. | |
| summary: UserUpdateProfile | |
| operationId: UserUpdateProfile | |
| parameters: | |
| - name: user | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/User' | |
| responses: | |
| '200': | |
| description: Things are looking good yo. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/accounts/{userId}': | |
| get: | |
| tags: | |
| - Accounts | |
| summary: UserGetProfileById | |
| operationId: UserGetProfileById | |
| description: Gets a user's profile. | |
| parameters: | |
| - name: userId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: New user successfully registered. | |
| schema: | |
| $ref: '#/definitions/ResponseUser' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| # CLIENTS | |
| /clients: | |
| get: | |
| tags: [ "Clients" ] | |
| summary: ClientGetAll | |
| operationId: ClientGetAll | |
| description: Gets a user's profile. | |
| responses: | |
| '200': | |
| description: All the users's clients. | |
| schema: | |
| $ref: '#/definitions/ResponseClient' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| post: | |
| tags: [ "Clients" ] | |
| summary: ClientCreate | |
| operationId: ClientCreate | |
| description: Create a client | |
| parameters: | |
| - name: client | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/AppClient' | |
| responses: | |
| '200': | |
| description: All the users's clients. | |
| schema: | |
| $ref: '#/definitions/ResponseClient' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/clients/{clientId}': | |
| put: | |
| tags: [ "Clients" ] | |
| summary: ClientUpdate | |
| operationId: ClientUpdate | |
| description: Update a client | |
| parameters: | |
| - name: clientId | |
| in: path | |
| required: true | |
| type: string | |
| - name: client | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/AppClient' | |
| responses: | |
| '200': | |
| description: All the users's clients. | |
| schema: | |
| $ref: '#/definitions/ResponseClient' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| get: | |
| tags: [ "Clients" ] | |
| summary: ClientGet | |
| operationId: ClientGet | |
| description: Get a client | |
| parameters: | |
| - name: clientId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: The client. | |
| schema: | |
| $ref: '#/definitions/ResponseClient' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| delete: | |
| tags: [ "Clients" ] | |
| summary: ClientDelete | |
| operationId: ClientDelete | |
| description: Deletes a client | |
| parameters: | |
| - name: clientId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| # PROJECTS | |
| /projects: | |
| get: | |
| tags: [ "Projects" ] | |
| summary: ProjectGetAll | |
| operationId: ProjectGetAll | |
| description: Gets a user's projects. | |
| responses: | |
| '200': | |
| description: All the users's projects. | |
| schema: | |
| $ref: '#/definitions/ResponseProject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| post: | |
| tags: [ "Projects" ] | |
| summary: Create | |
| operationId: ProjectCreate | |
| description: Create a project | |
| parameters: | |
| - name: project | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/Project' | |
| responses: | |
| '200': | |
| description: All the users's clients. | |
| schema: | |
| $ref: '#/definitions/ResponseProject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/projects/{projectId}': | |
| put: | |
| tags: [ "Projects" ] | |
| summary: ProjectUpdate | |
| operationId: ProjectUpdate | |
| description: Update a project | |
| parameters: | |
| - name: projectId | |
| in: path | |
| required: true | |
| type: string | |
| - name: project | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/Project' | |
| responses: | |
| '200': | |
| description: All the users's projects. | |
| schema: | |
| $ref: '#/definitions/ResponseProject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| get: | |
| tags: [ "Projects" ] | |
| summary: ProjectGet | |
| operationId: ProjectGet | |
| description: Get a project | |
| parameters: | |
| - name: projectId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: The client. | |
| schema: | |
| $ref: '#/definitions/ResponseProject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| delete: | |
| tags: [ "Projects" ] | |
| summary: ProjectDelete | |
| operationId: ProjectDelete | |
| description: Deletes a project | |
| parameters: | |
| - name: projectId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| # COMMENTS | |
| '/comments/{resourceType}/{resourceId}': | |
| post: | |
| tags: [ "Comments" ] | |
| summary: CommentCreate | |
| operationId: CommentCreate | |
| description: Creates a comment on a resource. | |
| parameters: | |
| - name: resourceType | |
| description: The resource type you want to comment on. | |
| in: path | |
| required: true | |
| type: string | |
| enum: ["stream", "object", "project", "comment" ] | |
| - name: resourceId | |
| description: The resource id you want to comment on. In the case of streams, it must be a streamId. | |
| in: path | |
| required: true | |
| type: string | |
| - name: comment | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/Comment' | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseComment' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| get: | |
| tags: [ "Comments" ] | |
| summary: CommentGetFromResource | |
| operationId: CommentGetFromResource | |
| description: Gets the comments from a resource. | |
| parameters: | |
| - name: resourceType | |
| description: The resource type you want to comment on. | |
| in: path | |
| required: true | |
| type: string | |
| enum: ["stream", "object", "project", "comment" ] | |
| - name: resourceId | |
| description: The resource id you want to comment on. In the case of streams, it must be a streamId. | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseComment' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/comments/{commentId}': | |
| get: | |
| tags: [ "Comments" ] | |
| summary: CommentGet | |
| operationId: CommentGet | |
| description: Gets a specific comment. | |
| parameters: | |
| - name: commentId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseComment' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| put: | |
| tags: [ "Comments" ] | |
| summary: CommentUpdate | |
| operationId: CommentUpdate | |
| description: Updates a comment. | |
| parameters: | |
| - name: commentId | |
| in: path | |
| required: true | |
| type: string | |
| - name: comment | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/Comment' | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| delete: | |
| tags: [ "Comments" ] | |
| summary: CommentDelete | |
| operationId: CommentDelete | |
| description: Deletes a specific comment. | |
| parameters: | |
| - name: commentId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| # STREAMS | |
| /streams: | |
| get: | |
| tags: [ "Streams" ] | |
| summary: StreamsGetAll | |
| operationId: StreamsGetAll | |
| description: Gets a user's streams. | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseStream' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| post: | |
| tags: [ "Streams" ] | |
| summary: StreamCreate | |
| operationId: StreamCreate | |
| description: Create a stream | |
| parameters: | |
| - name: stream | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/SpeckleStream' | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseStream' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/streams/{streamId}': | |
| get: | |
| tags: [ "Streams" ] | |
| summary: StreamGet | |
| operationId: StreamGet | |
| description: Gets a specific stream. | |
| parameters: | |
| - name: streamId | |
| in: path | |
| required: true | |
| type: string | |
| - name: query | |
| in: query | |
| type: string | |
| description: Specifiy which fields to retrieve, ie `?fields=layers,baseProperties`. | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseStream' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| put: | |
| tags: [ "Streams" ] | |
| summary: StreamUpdate | |
| operationId: StreamUpdate | |
| description: Updates a stream. | |
| parameters: | |
| - name: streamId | |
| in: path | |
| required: true | |
| type: string | |
| - name: stream | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/SpeckleStream' | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| delete: | |
| tags: [ "Streams" ] | |
| summary: StreamDelete | |
| operationId: StreamDelete | |
| description: Deletes a specific stream. | |
| parameters: | |
| - name: streamId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/streams/{streamId}/objects': | |
| get: | |
| tags: ["Streams"] | |
| summary: StreamGetObjects | |
| operationId: StreamGetObjects | |
| description: Gets stream objects. | |
| parameters: | |
| - name: streamId | |
| in: path | |
| required: true | |
| type: string | |
| - name: query | |
| in: query | |
| type: string | |
| description: Specifiy which fields to retrieve, filters, limits, etc. | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseObject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/streams/{streamId}/clone': | |
| post: | |
| tags: ["Streams"] | |
| summary: StreamClone | |
| operationId: StreamClone | |
| description: Clones a stream. | |
| parameters: | |
| - name: streamId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseStreamClone' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/streams/{streamId}/diff/{otherStreamId}': | |
| get: | |
| tags: ["Streams"] | |
| summary: StreamDiff | |
| operationId: StreamDiff | |
| description: Diffs two streams (objects and layers). | |
| parameters: | |
| - name: streamId | |
| in: path | |
| required: true | |
| type: string | |
| - name: otherStreamId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseStreamDiff' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| # OBJECTS | |
| /objects: | |
| post: | |
| tags: ["Objects"] | |
| summary: ObjectCreate | |
| operationId: ObjectCreate | |
| description: Create one or more objects | |
| parameters: | |
| - name: objects | |
| in: body | |
| schema: | |
| type: array | |
| items: | |
| $ref: '#/definitions/SpeckleObject' | |
| responses: | |
| '200': | |
| description: All the users's projects. | |
| schema: | |
| $ref: '#/definitions/ResponseObject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/objects/{objectId}': | |
| put: | |
| tags: [ "Objects" ] | |
| summary: ObjectUpdate | |
| operationId: ObjectUpdate | |
| description: Update a object | |
| parameters: | |
| - name: objectId | |
| in: path | |
| required: true | |
| type: string | |
| - name: object | |
| in: body | |
| required: true | |
| schema: | |
| $ref: '#/definitions/SpeckleObject' | |
| responses: | |
| '200': | |
| description: All the users's projects. | |
| schema: | |
| $ref: '#/definitions/ResponseObject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| get: | |
| tags: [ "Objects" ] | |
| summary: ObjectGet | |
| operationId: ObjectGet | |
| description: Get a object | |
| parameters: | |
| - name: objectId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: The client. | |
| schema: | |
| $ref: '#/definitions/ResponseObject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| delete: | |
| tags: [ "Objects" ] | |
| summary: ObjectDelete | |
| operationId: ObjectDelete | |
| description: Deletes an object | |
| parameters: | |
| - name: objectId | |
| in: path | |
| required: true | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/objects/{objectId}/properties': | |
| put: | |
| tags: ["Objects"] | |
| summary: ObjectUpdateProperties | |
| operationId: ObjectUpdateProperties | |
| description: Does a merge update of the object's properties. | |
| parameters: | |
| - name: objectId | |
| in: path | |
| required: true | |
| type: string | |
| - name: object | |
| in: body | |
| description: An object that holds the keys you want to modify or add. | |
| required: true | |
| schema: | |
| type: object | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| '/objects/getbulk': | |
| post: | |
| tags: ["Objects"] | |
| summary: ObjectGetBulk | |
| operationId: ObjectGetBulk | |
| description: Gets a load of objects | |
| parameters: | |
| - name: query | |
| in: query | |
| required: false | |
| type: string | |
| description: Specifiy which fields to retrieve, filters, limits, etc. For example, `?fields=type,properties,hash&type=Circle` | |
| - name: object | |
| in: body | |
| description: An object that holds the keys you want to modify or add. | |
| required: true | |
| schema: | |
| type: array | |
| items: | |
| type: string | |
| responses: | |
| '200': | |
| description: All good! | |
| schema: | |
| $ref: '#/definitions/ResponseObject' | |
| '400': | |
| description: Fail whale. | |
| schema: | |
| $ref: '#/definitions/ResponseBase' | |
| definitions: | |
| ResourceBase: | |
| description: Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users). | |
| type: object | |
| properties: | |
| _id: | |
| type: string | |
| owner: | |
| type: string | |
| private: | |
| type: boolean | |
| anonymousComments: | |
| type: boolean | |
| canRead: | |
| type: array | |
| items: | |
| type: string | |
| canWrite: | |
| type: array | |
| items: | |
| type: string | |
| comments: | |
| description: An array of comment ids. | |
| type: array | |
| items: | |
| type: string | |
| deleted: | |
| description: Controls archival status - does not actually delete anything | |
| type: boolean | |
| default: false | |
| User: | |
| type: object | |
| description: Describes a user. | |
| properties: | |
| _id: | |
| type: string | |
| description: Database uuid. | |
| role: | |
| type: string | |
| description: User's role. Defaults to "user". | |
| avatar: | |
| type: string | |
| description: We will need profile pics at one point. | |
| apitoken: | |
| type: string | |
| description: a signed jwt token that expires in 1 year. | |
| token: | |
| type: string | |
| description: a signed jwt token that expires in 1 day. | |
| email: | |
| type: string | |
| description: user's email | |
| name: | |
| type: string | |
| description: User's given name | |
| surname: | |
| type: string | |
| description: User's family name | |
| company: | |
| type: string | |
| description: Users's company | |
| logins: | |
| type: array | |
| description: an array storing each time the user logged in. | |
| items: | |
| type: object | |
| properties: | |
| date: | |
| type: string | |
| description: it's a timestamp for each login. | |
| AppClient: | |
| description: A speckle client. | |
| allOf: | |
| - $ref: '#/definitions/ResourceBase' | |
| - properties: | |
| _id: | |
| type: string | |
| description: Database uuid. | |
| role: | |
| type: string | |
| description: Either Sender, Receiver or anything else you can think of. | |
| documentGuid: | |
| type: string | |
| documentName: | |
| type: string | |
| documentType: | |
| type: string | |
| documentLocation: | |
| type: string | |
| streamId: | |
| type: string | |
| description: The streamId that this client is attached to. | |
| online: | |
| type: boolean | |
| description: Is it accessible from the server or not? | |
| Project: | |
| description: A project contains a group of streams and users. | |
| allOf: | |
| - $ref: '#/definitions/ResourceBase' | |
| - properties: | |
| _id: | |
| type: string | |
| name: | |
| type: string | |
| number: | |
| type: string | |
| users: | |
| type: array | |
| items: | |
| type: string | |
| streams: | |
| type: array | |
| items: | |
| type: string | |
| subProjects: | |
| type: array | |
| items: | |
| type: string | |
| Comment: | |
| description: A comment/issue. | |
| allOf: | |
| - $ref: '#/definitions/ResourceBase' | |
| - properties: | |
| resource: | |
| type: object | |
| properties: | |
| resourceType: | |
| type: string | |
| resourceId: | |
| type: string | |
| text: | |
| type: string | |
| assignedTo: | |
| type: array | |
| items: | |
| type: string | |
| closed: | |
| type: boolean | |
| labels: | |
| type: array | |
| items: | |
| type: string | |
| view: | |
| type: object | |
| screenshot: | |
| type: string | |
| SpeckleStream: | |
| description: A stream is essentially a collection of objects, with added properties. | |
| allOf: | |
| - $ref: '#/definitions/ResourceBase' | |
| - properties: | |
| streamId: | |
| type: string | |
| description: The stream's short id. | |
| name: | |
| type: string | |
| description: The data stream's name | |
| objects: | |
| type: array | |
| description: An array of SpeckleObject ids. | |
| items: | |
| $ref: '#/definitions/SpeckleObject' | |
| layers: | |
| type: array | |
| description: An array of speckle layers. | |
| items: | |
| $ref: '#/definitions/Layer' | |
| baseProperties: | |
| description: Units, tolerances, etc. | |
| type: object | |
| globalMeasures: | |
| description: Any performance measures can go in here. | |
| type: object | |
| isComputedResult: | |
| type: boolean | |
| default: false | |
| viewerLayers: | |
| type: array | |
| items: | |
| type: object | |
| parent: | |
| type: string | |
| description: If this stream is a child, the parent's streamId. | |
| children: | |
| type: array | |
| description: An array of the streamId of any children of this stream. | |
| items: | |
| type: string | |
| ancestors: | |
| description: If resulting from a merge, the streams that this one was born out of. | |
| type: array | |
| items: | |
| type: string | |
| Layer: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| description: Layer's name | |
| guid: | |
| type: string | |
| description: Layer's guid (must be unique) | |
| orderIndex: | |
| type: integer | |
| description: Describes this layer's position in the list of layers. | |
| startIndex: | |
| type: number | |
| description: The index of the first object relative to the stream's objects array | |
| objectCount: | |
| type: number | |
| description: How many objects does this layer have. | |
| topology: | |
| type: string | |
| description: String describing the nested tree structure (GH centric). | |
| properties: | |
| $ref: '#/definitions/LayerProperties' | |
| description: 'Describes 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 ]`.' | |
| LayerProperties: | |
| type: object | |
| properties: | |
| color: | |
| type: object | |
| properties: | |
| a: | |
| type: number | |
| description: alpha value | |
| default: 1 | |
| hex: | |
| type: string | |
| description: hex color value | |
| visible: | |
| type: boolean | |
| description: toggles layer visibility. | |
| pointsize: | |
| type: number | |
| description: defines point size in threejs | |
| linewidth: | |
| type: number | |
| description: defines line thickness in threejs | |
| shininess: | |
| type: number | |
| description: says it all. speckle is superficial. | |
| smooth: | |
| type: boolean | |
| description: smooth shading toggle | |
| showEdges: | |
| type: boolean | |
| description: display edges or not yo. | |
| wireframe: | |
| type: boolean | |
| description: i'm bored. | |
| description: 'Holds 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.' | |
| # the base response class | |
| ResponseBase: | |
| type: object | |
| properties: | |
| success: | |
| type: boolean | |
| description: 'Besides the http status code, this tells you whether the call succeeded or not.' | |
| message: | |
| type: string | |
| description: Either an error or a confirmation. | |
| resource: | |
| type: object | |
| description: Returned resource (if querying by id) | |
| resources: | |
| type: array | |
| description: Returned resources array (if it's a bulk query) | |
| items: | |
| type: object | |
| ResponseUser: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| resource: | |
| $ref: '#/definitions/User' | |
| resources: | |
| type: array | |
| items: | |
| $ref: '#/definitions/User' | |
| ResponseClient: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| resource: | |
| $ref: '#/definitions/AppClient' | |
| resources: | |
| type: array | |
| items: | |
| $ref: '#/definitions/AppClient' | |
| ResponseProject: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| resource: | |
| $ref: '#/definitions/Project' | |
| resources: | |
| type: array | |
| items: | |
| $ref: '#/definitions/Project' | |
| ResponseComment: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| resource: | |
| $ref: '#/definitions/Comment' | |
| resources: | |
| type: array | |
| items: | |
| $ref: '#/definitions/Comment' | |
| ResponseStream: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| resource: | |
| $ref: '#/definitions/SpeckleStream' | |
| resources: | |
| type: array | |
| items: | |
| $ref: '#/definitions/SpeckleStream' | |
| ResponseObject: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| resource: | |
| $ref: '#/definitions/SpeckleObject' | |
| resources: | |
| type: array | |
| items: | |
| $ref: '#/definitions/SpeckleObject' | |
| ResponseStreamClone: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| clone: | |
| $ref: '#/definitions/SpeckleStream' | |
| parent: | |
| $ref: '#/definitions/SpeckleStream' | |
| ResponseStreamDiff: | |
| allOf: | |
| - $ref: '#/definitions/ResponseBase' | |
| - type: object | |
| properties: | |
| objects: | |
| type: object | |
| properties: | |
| common: | |
| type: array | |
| items: | |
| type: string | |
| inA: | |
| type: array | |
| items: | |
| type: string | |
| inB: | |
| type: array | |
| items: | |
| type: string | |
| layers: | |
| type: object | |
| properties: | |
| common: | |
| type: array | |
| items: | |
| $ref: '#/definitions/Layer' | |
| inA: | |
| type: array | |
| items: | |
| $ref: '#/definitions/Layer' | |
| inB: | |
| type: array | |
| items: | |
| $ref: '#/definitions/Layer' | |
| SpeckleObject: | |
| description: Base class that is inherited by all other Speckle objects. | |
| required: | |
| - type | |
| - hash | |
| discriminator: type | |
| allOf: | |
| - $ref: '#/definitions/ResourceBase' | |
| - properties: | |
| type: | |
| type: string | |
| description: Object's subtype | |
| enum: ['Null', 'Abstract', 'Placeholder', 'Boolean', 'Number', 'String', 'Interval', 'Interval2d', 'Point', 'Vector', 'Plane', 'Line', 'Rectangle', 'Circle', 'Arc', 'Ellipse', 'Polycurve', 'Box', 'Polyline', 'Curve', 'Mesh', 'Brep', 'Annotation', 'Extrusion'] | |
| hash: | |
| type: string | |
| description: Object's unique hash. | |
| example: hash | |
| geometryHash: | |
| type: string | |
| description: Object's geometry hash | |
| example: Type.hash | |
| applicationId: | |
| type: string | |
| example: GUID | |
| description: The id/guid that the origin application identifies this object by. | |
| name: | |
| type: string | |
| description: The name of the object in the origin application. This is the instance or entity name displayed in the "properties" dialog in most applications. | |
| properties: | |
| type: object | |
| description: The extra properties field of a speckle object. | |
| parent: | |
| type: string | |
| description: If this object is a child, the parent's objectid. | |
| children: | |
| type: array | |
| description: An array of the ids of any children of this object. | |
| items: | |
| type: string | |
| ancestors: | |
| description: If resulting from a merge, the objects that this one was born out of. | |
| type: array | |
| items: | |
| type: string | |
| transform: | |
| type: array | |
| items: | |
| type: number | |
| SpeckleAbstract: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Abstract | |
| _type: | |
| type: string | |
| description: the original type of the object | |
| assembly: | |
| type: string | |
| description: the original assembly of this object | |
| SpecklePlaceholder: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Abstract | |
| SpeckleBoolean: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Boolean | |
| value: | |
| type: boolean | |
| SpeckleNumber: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Number | |
| value: | |
| type: number | |
| description: A number. Can be float, double, etc. | |
| SpeckleString: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: String | |
| value: | |
| type: string | |
| description: A string. | |
| SpeckleInterval: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Interval | |
| start: | |
| type: number | |
| end: | |
| type: number | |
| SpeckleInterval2d: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| U: | |
| $ref: '#/definitions/SpeckleInterval' | |
| description: U interval. | |
| V: | |
| $ref: '#/definitions/SpeckleInterval' | |
| description: V interval. | |
| SpecklePoint: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Point | |
| value: | |
| description: An array containing the X, Y and Z coords of the point. | |
| type: array | |
| items: | |
| type: number | |
| SpeckleVector: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Vector | |
| value: | |
| description: An array containing the X, Y and Z coords of the vector. | |
| type: array | |
| items: | |
| type: number | |
| SpecklePlane: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Plane | |
| origin: | |
| $ref: '#/definitions/SpecklePoint' | |
| description: The origin of the plane. | |
| normal: | |
| $ref: '#/definitions/SpeckleVector' | |
| description: The normal of the plane. | |
| xdir: | |
| $ref: '#/definitions/SpeckleVector' | |
| description: The X axis of the plane. | |
| ydir: | |
| $ref: '#/definitions/SpeckleVector' | |
| description: The Y axis of the plane. | |
| SpeckleCircle: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Circle | |
| radius: | |
| type: number | |
| center: | |
| $ref: '#/definitions/SpecklePoint' | |
| normal: | |
| $ref: '#/definitions/SpeckleVector' | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpeckleArc: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Arc | |
| radius: | |
| type: number | |
| startAngle: | |
| type: number | |
| endAngle: | |
| type: number | |
| angleRadians: | |
| type: number | |
| plane: | |
| $ref: '#/definitions/SpecklePlane' | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpeckleEllipse: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Ellipse | |
| firstRadius: | |
| type: number | |
| secondRadius: | |
| type: number | |
| plane: | |
| $ref: '#/definitions/SpecklePlane' | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpecklePolycurve: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Polycurve | |
| segments: | |
| type: array | |
| items: | |
| $ref: '#/definitions/SpeckleObject' | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpeckleBox: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Box | |
| basePlane: | |
| $ref: '#/definitions/SpecklePlane' | |
| xSize: | |
| $ref: '#/definitions/SpeckleInterval' | |
| ySize: | |
| $ref: '#/definitions/SpeckleInterval' | |
| zSize: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpeckleLine: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Line | |
| value: | |
| type: array | |
| items: | |
| type: number | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpecklePolyline: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Polyline | |
| closed: | |
| type: boolean | |
| value: | |
| type: array | |
| items: | |
| type: number | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| SpeckleCurve: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Curve | |
| degree: | |
| type: number | |
| periodic: | |
| type: boolean | |
| rational: | |
| type: boolean | |
| points: | |
| type: array | |
| items: | |
| type: number | |
| weights: | |
| type: array | |
| items: | |
| type: number | |
| knots: | |
| type: array | |
| items: | |
| type: number | |
| domain: | |
| $ref: '#/definitions/SpeckleInterval' | |
| displayValue: | |
| $ref: '#/definitions/SpecklePolyline' | |
| SpeckleMesh: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Mesh | |
| vertices: | |
| type: array | |
| items: | |
| type: number | |
| description: The mesh's vertices array, in a flat array (ie, `x1, y1, z1, x2, y2, ...`) | |
| faces: | |
| type: array | |
| items: | |
| type: number | |
| description: The faces array. | |
| colors: | |
| type: array | |
| items: | |
| type: number | |
| description: If any, the colours per vertex. | |
| textureCoordinates: | |
| type: array | |
| items: | |
| type: number | |
| description: The faces array. | |
| SpeckleBrep: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| type: | |
| default: Brep | |
| rawData: | |
| type: object | |
| description: The brep's raw (serialisation) data. | |
| provenance: | |
| type: string | |
| description: A short prefix of where the base64 comes from. | |
| displayValue: | |
| $ref: '#/definitions/SpeckleMesh' | |
| description: Contains a speckle mesh representation of this brep. | |
| SpeckleExtrusion: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| capped: | |
| type: boolean | |
| profile: | |
| $ref: '#/definitions/SpeckleObject' | |
| pathStart: | |
| $ref: '#/definitions/SpecklePoint' | |
| pathEnd: | |
| $ref: '#/definitions/SpecklePoint' | |
| pathCurve: | |
| $ref: '#/definitions/SpeckleObject' | |
| SpeckleAnnotation: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| text: | |
| type: string | |
| textHeight: | |
| type: number | |
| fontName: | |
| type: string | |
| bold: | |
| type: boolean | |
| italic: | |
| type: boolean | |
| location: | |
| $ref: '#/definitions/SpecklePoint' | |
| plane: | |
| $ref: '#/definitions/SpecklePlane' | |
| SpeckleBlock: | |
| allOf: | |
| - $ref: '#/definitions/SpeckleObject' | |
| - type: object | |
| properties: | |
| blockName: | |
| type: string | |
| description: the name of the block definition used to insert this block | |
| description: | |
| type: string | |
| objects: | |
| type: array | |
| items: | |
| $ref: '#/definitions/SpeckleObject' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment