swagger: '2.0' info: title: Social Tables API Gateway Authentication Layout Automation API version: 4.0.0 description: The Social Tables API host: api.socialtables.com basePath: / tags: - name: Layout Automation paths: /4.0/layout-automation: post: tags: - Layout Automation description: actively calculates layout and creates an event/space/diagram consumes: - application/json produces: - application/json parameters: - name: body description: description event POST body used to create event etc in: body required: true schema: $ref: '#/definitions/CustomWizardPost-layout-automation-service' responses: '200': description: full event created by the layout automation service schema: $ref: '#/definitions/PersistedAutomationPostResponse-layout-automation-service' delete: tags: - Layout Automation description: removes floor elements from previous automated and manual layouts consumes: - application/json produces: - application/json parameters: - name: spaces description: a comma-separated list of space IDs to clear in: query required: true type: string - name: event description: the ID of the event to clear in: query required: true type: string - name: hardDelete description: flag to hard delete diagram/space default: false in: query required: false type: boolean responses: '204': description: success /4.0/layout-automation/custom-setup: post: tags: - Layout Automation description: actively calculates layout and creates an event/space/diagram using custom_setup defined from Home Team Setup Presets https://home-2018.socialtables.com/settings/team-setup-presets consumes: - application/json produces: - application/json parameters: - name: body description: description event POST body used to create event etc in: body required: true schema: $ref: '#/definitions/CustomSetupPost-layout-automation-service' responses: '200': description: full event created by the layout automation service schema: $ref: '#/definitions/PersistedAutomationPostResponse-layout-automation-service' definitions: CustomWizardPost-layout-automation-service: required: - category - spaces type: object properties: event_id: type: number uses_metric: type: boolean start_time: format: date-time type: string end_time: format: date-time type: string category: type: string name: type: string description: Required if no event_id is provided. public: type: boolean attendee_management: type: boolean useSocialDistance: type: boolean spaces: items: $ref: '#/definitions/SpaceCustomWizard-layout-automation-service' type: array user_email: type: string team_id: type: number PositionString-layout-automation-service: type: string enum: - center - nw - sw - ne - se - n - s - e - w default: center SpaceResult-layout-automation-service: type: object properties: id: type: integer event_id: type: integer space_order: type: integer bookable_room: type: string venue_id: type: string name: type: string updated_at: type: string format: date-time is_new: type: boolean diagram_id: type: string pdf_url: type: string warnings: type: array items: type: object properties: message: type: string resolution: type: string errors: type: array items: type: object properties: message: type: string resolution: type: string Aisle-layout-automation-service: type: object properties: width: type: number default: 0 floorElementsBetween: type: integer default: 0 description: Number of floor elements that should be placed in a row or column before an aisle is placed. PersistedAutomationPostResponse-layout-automation-service: type: object properties: id: type: integer name: type: string user_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time is_a_sample: type: integer category: type: string is_public: type: boolean pricing_plan: type: string team_id: type: integer eventbrite_event_id: type: string eventbrite_access_token: type: string last_accessed: type: string format: date-time logo: type: string floor_only: type: integer is_archived: type: boolean aim_only: type: integer start_time: type: string format: date-time end_time: type: string format: date-time mobile_col1: type: integer mobile_col2: type: integer event_url: type: string screenshot_url: type: string thumb_url: type: string forTraining: type: boolean uses_metric: type: integer collaborators_expire_at: type: string format: date-time venue_mapper_version: type: integer uid: type: string cvent_rfp_id: type: string last_activity: type: string format: date-time has_time: type: boolean status: type: string industry: type: string author: $ref: '#/definitions/EventAuthor-layout-automation-service' spaces: type: array items: $ref: '#/definitions/SpaceResult-layout-automation-service' message: type: string SpaceCustomWizard-layout-automation-service: type: object required: - name - attendees properties: id: type: integer attendees: type: integer maximum: 10000 wizard: $ref: '#/definitions/TemplatedLayoutSpec-layout-automation-service' description: One of 'wizard' or 'layoutSpec' must be provided. layoutSpec: $ref: '#/definitions/TemplatedLayoutSpec-layout-automation-service' description: One of 'wizard' or 'layoutSpec' must be provided. name: type: string external_event_id: type: string external_diagram_id: type: string venue_id: type: string custom_setup: type: string Table-layout-automation-service: type: object required: - chairs - size - spacing properties: type: type: string enum: - chair - oval - oval-table - rectangle - rectangle-table - square - square-table - theatre - circle - circle-table - crescent - crescent-table - half-circle-table - high-boy - serpentine - serpentine-table size: type: object properties: width: type: number minimum: 0 length: type: number minimum: 0 radius: type: number minimum: 0 description: For round tables, radius is required. All other tables require length and width. chairs: type: integer minimum: 0 position: $ref: '#/definitions/PositionString-layout-automation-service' spacing: type: object properties: x: type: number default: 0 y: type: number default: 0 default: x: 0 y: 0 cullAdditionalTables: type: boolean description: Whether to cull extraneous tables beyond the requested attendee count, if any. It has no bearing on whether tables that collide with existing objects should be culled. placeEvenlyAcrossLayout: type: boolean description: Should the automator attempt to place tables evenly across the space? False will limit tables to the largest 'region of interest' within the room. removeChairs: type: integer minimum: 0 description: The number of chairs to remove for crescent tables. Ignored for other floor elements. rotateCrescentOffset: type: number description: The offset for where the missing chairs should be for crescent tables. Ignored for other floor elements. SpaceCustomSetup-layout-automation-service: type: object required: - name - custom_setup - attendees properties: id: type: integer name: type: string external_event_id: type: string external_diagram_id: type: string venue_id: type: string custom_setup: type: string attendees: type: integer maximum: 10000 TemplatedLayoutSpec-layout-automation-service: type: object properties: setup: type: string enum: - aligned - classroom - conference-table - hollow - hollow-square - staggered - theater - theater-row - theatre - u-shape default: aligned attendees: type: integer minimum: 0 maximum: 10000 chairType: type: string enum: - banquet - chiavari - ghost chairs: type: object properties: size: type: object properties: length: type: number minimum: 0 width: type: number minimum: 0 rotation: type: number default: 0 description: The rotation relative to the viewport. table: $ref: '#/definitions/Table-layout-automation-service' default: chairs: 2 size: width: 24 length: 12 radius: 20 spacing: x: 0 y: 0 aisles: type: object properties: horizontal: $ref: '#/definitions/Aisle-layout-automation-service' vertical: $ref: '#/definitions/Aisle-layout-automation-service' default: width: 36 floorElementsBetween: 15 default: horizontal: {} vertical: {} chevronAngle: type: number default: 0 ignore_doors_and_columns: type: boolean description: True and undefined result in skipping collision checks with permanentObjects best_effort_capacity: type: boolean description: Whether a failure to seat all attendees is acceptable. False will throw a fatal error if not all attendees can be seated. True will seat the max possible and add a ctx error message errors_in_diagram: type: boolean default: true description: Add error text to the diagram. nudgeOnCollide: type: boolean description: 'On collision, nudge tables slightly to a nearby valid position if any exists. Note: This may slightly compromise a setup''s natural shape.' updatedRects: type: boolean description: Uses an improved algorithm to detect bounding boxes in a floorplan. It usually results in larger valid areas being detected. required: - attendees CustomSetupPost-layout-automation-service: required: - category - spaces type: object properties: event_id: type: number uses_metric: type: boolean start_time: format: date-time type: string end_time: format: date-time type: string category: type: string name: type: string description: Required if no event_id is provided. public: type: boolean attendee_management: type: boolean useSocialDistance: type: boolean spaces: items: $ref: '#/definitions/SpaceCustomSetup-layout-automation-service' type: array user_email: type: string team_id: type: number EventAuthor-layout-automation-service: type: object properties: id: type: integer first_name: type: string last_name: type: string email_address: type: string securityDefinitions: oauth2: type: oauth2 description: OAuth tokenUrl: https://auth.socialtables.com/oauth/token authorizationUrl: https://auth.socialtables.com/oauth/authorize flow: accessCode scopes: authenticated: any authentication whatsoever create:oauth_client: oauth client create userdata: All of the things. user_token: type: apiKey name: user_token in: header description: Social Tables User Token partner_token: type: apiKey name: partner_token in: header description: Social Tables Partner Token