##  [optiSLang Web Service REST API](/docs/optislang-web-service-rest-api-2023-r2) 

Source file

Attached file *optiSLang Web Service REST API 2023 R2 (1)\_0.yaml* with *yaml* extension available at *https://developer.synopsys.com/system/files/2023-11/optiSLang%20Web%20Service%20REST%20API%202023%20R2%20%281%29\_0.yaml* follows:  
*openapi: 3.0.2 info: title: optiSLang Web Service REST API description: &gt;2- The REST API allows you to manage instances of optiSlang Web Service. version: 2023 R2 components: securitySchemes: BasicAuth: type: http scheme: basic BearerAuth: type: http scheme: bearer schemas: optislang\_web\_service\_response\_status: type: string enum: - failure - success description: Success state python\_response\_message: oneOf: - type: string - type: object required: - result - stdout properties: result: type: object stderr: type: string description: Standard error output stdout: type: string description: Standard output responses: Unauthorized: description: Unauthorized Unauthorized\_JSON: description: Unauthorized content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string security: - BasicAuth: \[\] - BearerAuth: \[\] paths: /add\_user: post: summary: Add user. requestBody: content: application/json: schema: type: object required: - name - password properties: name: type: string description: User name password: type: string description: User password required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /change\_user\_password: post: summary: Set a new password for user. requestBody: content: application/json: schema: type: object required: - name - password properties: name: type: string description: User who will have their password changed password: type: string description: New user password required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /create\_working\_dir: post: summary: Create a new project working directory. description: &gt;- Working directory is created relative to configured projects directory. The provided base\_name is used to create a unique directory name. requestBody: content: application/json: schema: type: object required: - base\_name properties: base\_name: type: string description: Base name for unique working directory path required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object required: - relative\_location properties: relative\_location: type: string description: &gt;- Actual path of the created working directory, relative to defined project base directory '401': $ref: '#/components/responses/Unauthorized\_JSON' /discover\_projects: post: summary: Discover currently running optiSLang projects within local network. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: array items: type: object description: Discovered projects '401': $ref: '#/components/responses/Unauthorized\_JSON' /download\_wizard: get: summary: Download an optiSLang Web App Wizard . parameters: - in: query name: wizard\_id schema: type: string description: ID of the wizard to download. responses: '200': description: Binary wizard file data content: application/octet-stream: schema: type: string format: binary '401': $ref: '#/components/responses/Unauthorized\_JSON' '500': description: Server error content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string /fetch\_result\_files: get: summary: Download registered result files for a project. Zipped if more than one. parameters: - in: query name: file\_paths schema: type: array items: type: string description: &gt;- List of result file paths to download. Format: file\_paths\[0\]=/path/to/file\_1&amp;...&amp;file\_paths\[n\]=/path/to/file\_n. responses: '200': description: Binary result file data content: application/octet-stream: schema: type: string format: binary '401': $ref: '#/components/responses/Unauthorized\_JSON' '500': description: Server error content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string /get\_actions: get: summary: Get defined actions. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object description: Defined actions '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_actor\_properties: post: summary: Get properties of certain actor. requestBody: content: application/json: schema: type: object required: - project\_id - uid properties: project\_id: type: string description: Project ID uid: type: string description: Actor ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_actor\_states: post: summary: Get states of certain actor. requestBody: content: application/json: schema: type: object required: - project\_id - uid properties: project\_id: type: string description: Project ID uid: type: string description: Actor ID include\_state\_info: type: boolean description: Determines if detailed state info is to be included required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object description: List of recorded states '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_actor\_status\_info: post: summary: Get certain state of certain actor. requestBody: content: application/json: schema: type: object required: - project\_id - uid - hid properties: project\_id: type: string description: Project ID uid: type: string description: Actor ID hid: type: string description: Actor State ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_actor\_tree: post: summary: Get project actor schematic tree. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_automail: post: summary: Get auto mail configuration. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_basic\_project\_info: post: summary: Get basic project info. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object required: - location - machine - name - state - timestamp - user - base\_working\_dir properties: location: type: string description: Actual location of project file on disc machine: type: string description: &gt;- Name of machine the project has been registered/started on originally name: type: string description: Project name state: type: string description: Project status timestamp: type: integer description: Registration/Start timestamp user: type: string description: Project owner server\_address: type: string description: Host ip the project is currently running on server\_port: type: integer description: Host port the project is currently running on lock\_info\_msg: type: string description: Lock info message if project is currently locked annotation: type: string description: Project annotation base\_working\_dir: type: string description: Project base working directory connections: type: array description: Node connections items: type: object placeholders: type: object description: Project placeholder definition project\_id: type: string description: Project ID project\_manager\_id: type: string description: Project manager ID registered\_files: type: array description: Project registered files items: type: object settings: type: object description: Project settings working\_dir: type: string description: Project working dir '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_version: get: summary: Get version. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string description: Version string '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_current\_username: get: summary: Get name of currently logged in user. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string description: Name of currently logged in user '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_visualization\_user\_settings: post: summary: Get user settings for the visualization interface. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_interface\_settings: get: summary: Get ui settings. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object required: - auto\_mail\_options - additional\_user\_permissions - project\_controls - project\_discovery - visible\_properties - properties\_modifiable - parent\_origin - text\_file\_extensions - force\_forward\_to\_monitoring properties: auto\_mail\_options: type: boolean description: Show auto mail configuration additional\_user\_permissions: type: boolean description: Show additional user permission configuration project\_controls: type: boolean description: Show project controls project\_discovery: type: boolean description: Support manual project discovery visible\_properties: type: array items: type: string description: List of visible actor properties properties\_modifiable: type: boolean description: Allow property modification parent\_origin: type: string description: &gt;- Parent window URI if used in embedded mode. Omit this setting to disable embedded mode text\_file\_extensions: type: array items: type: string description: &gt;- List of file extensions that are to be handled as text files for result files preview force\_forward\_to\_monitoring: type: boolean description: &gt;- Force forwarding to project monitoring after project start from App Wizards '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_permissions: post: summary: Get project permissions for current user. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object required: - status - interaction properties: status: type: boolean description: &gt;- Determines if user has status view permission for this project interaction: type: boolean description: &gt;- Determines if user has interaction permission for this project '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_projects: get: summary: Get owned and accessible non-owned projects based on session user name. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object required: - allow\_delete - custom\_data - directory\_size - id - location - machine - name - state - timestamp - user - wizard properties: allow\_delete: type: boolean description: &gt;- Allow deletion of project. Will be false as long as optiSLang project is up and running custom\_data: type: object description: Custom data directory\_size: type: integer description: Working directory size id: type: integer description: Project ID location: type: string description: Actual location of project file on disc machine: type: string description: &gt;- Name of machine the project has been registered/started on originally name: type: string description: Project name timestamp: type: integer description: Registration/Start timestamp user: type: string description: Project owner wizard: type: string description: &gt;- Name of wizard that has been used to start the project '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_project: post: summary: Get project information for a specific project. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object required: - allow\_delete - custom\_data - directory\_size - id - location - machine - name - state - timestamp - user - wizard properties: allow\_delete: type: boolean description: &gt;- Allow deletion of project. Will be false as long as optiSLang project is up and running custom\_data: type: object description: Custom data directory\_size: type: integer description: Working directory size id: type: integer description: Project ID location: type: string description: Actual location of project file on disc machine: type: string description: &gt;- Name of machine the project has been registered/started on originally name: type: string description: Project name timestamp: type: integer description: Registration/Start timestamp user: type: string description: Project owner wizard: type: string description: Name of wizard that has been used to start the project '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_remote\_dispatch\_list: post: summary: Get submission target list defined in wizard. requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: Wizard ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: array items: type: string description: Defined submission targets '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_actor\_result\_files: post: summary: Get registered result files for a specific actor. requestBody: content: application/json: schema: type: object required: - project\_id - uid - hid properties: project\_id: type: string description: Project ID uid: type: string description: Actor ID hid: type: string description: Design ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object required: - is\_available - path - filename properties: is\_available: type: boolean description: Determines if currently available for download path: type: string description: File path filename: type: string description: File name last\_modified: type: string description: Time of last modification size: type: integer description: File size in bytes '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_project\_result\_files: post: summary: Get registered result files for a project. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object required: - is\_available - path - filename properties: is\_available: type: boolean description: Determines if currently available for download path: type: string description: File path filename: type: string description: File name last\_modified: type: string description: Time of last modification size: type: integer description: File size in bytes '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_result\_files: post: deprecated: true summary: &gt;- Get registered result files for a project. This endpoint is deprecated, it will be removed in a future version. Use /get\_project\_result\_files for project result files or /get\_actor\_result\_files for actor result files. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object required: - is\_available - path - filename properties: is\_available: type: boolean description: Determines if currently available for download path: type: string description: File path filename: type: string description: File name last\_modified: type: string description: Time of last modification size: type: integer description: File size in bytes '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_user\_permissions: post: summary: Get defined additional user permissions for a project. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_users: get: summary: Get registered users. description: &gt;- Get registered users. The returned object contains user names as item IDs and additional information as item values. Schema is an example. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object properties: some\_user\_name: type: object required: - level - groups properties: level: type: string enum: - USER - ADMIN description: User level groups: type: array items: type: string description: User groups '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_wizard\_by\_project: post: summary: &gt;- Get the wizard ID used to start the project. Return an empty string if the project was not started via wizard. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_wizard\_doc: post: summary: Get wizard documentation. requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: Wizard ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_wizard\_hash: post: summary: Get wizard integrity hash. requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: Wizard ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object required: - hash properties: hash: type: integer '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_wizard\_groups: get: summary: Get wizard groups. description: &gt;- Wizard groups are used to group wizards to organize them better. There are predefined (admin-defined) wizard groups and user-defined wizard groups. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object required: - admin\_groups - user\_groups properties: admin\_groups: type: array items: type: object properties: some\_admin\_wizard\_group\_name: type: array items: type: string description: Wizards belonging to this wizard group description: Admin-defined wizard groups user\_groups: type: array items: type: object properties: some\_user\_wizard\_group\_name: type: array items: type: string description: Wizards belonging to this wizard group description: User-defined wizard groups '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_wizard\_user\_groups: get: summary: Get wizard user groups. description: &gt;- Wizard user groups can used to restrict wizards to certain user group(s). responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object properties: some\_wizard\_name: type: array items: type: string description: User groups defined for this wizard '401': $ref: '#/components/responses/Unauthorized\_JSON' /get\_wizards: get: summary: Get accessible AppWizards based on session user name. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: array items: type: object required: - metadata - name properties: metadata: type: object required: - title properties: title: type: string description: Human readable title name: type: string description: Wizard ID '401': $ref: '#/components/responses/Unauthorized\_JSON' /is\_admin: post: summary: Query if provided user is admin user. requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: User name required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: boolean description: Determines if user is admin user '401': $ref: '#/components/responses/Unauthorized\_JSON' /is\_omdb\_available: get: summary: Query if optiSLang system monitoring omdb file is available. parameters: - in: query name: name schema: type: string description: optiSLang system name required: true - in: query name: working\_dir schema: type: string description: optiSLang system working directory required: true - in: query name: project\_id schema: type: string description: Project ID required: true - in: query name: uid schema: type: string description: optiSLang system ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: boolean '401': $ref: '#/components/responses/Unauthorized\_JSON' /lock\_project: post: summary: Lock project or refresh an allready acquired lock. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /login: get: summary: Combined login / get login form request. description: &gt;- Redirecting to "/" if already logged in. Otherwise, try to login if username and password parameters are defined, else get login form. parameters: - in: query name: username schema: type: string description: The username used to login - in: query name: password schema: type: string description: The password used to login responses: '200': description: '' /login\_custom: get: summary: Start custom login attempt if configured as such. description: &gt;- Redirecting to "/" if already logged in. Otherwise, get custom login form if enabled server side, else redirect to "/login"". parameters: - in: query name: username schema: type: string description: The username used to login - in: query name: password schema: type: string description: The password used to login responses: '200': description: '' /login\_externally\_authorized: post: summary: &gt;- Login using external (via frontend) authorization if allowed server side. description: &gt;- Redirect to "/login" if not allowed server side or no username specified. Redirecting to "/" if already logged in. Otherwise, login unconstrained using specified user name. Attention: This is unsafe as no server side credential check is performed! Functionality is disabled by default. parameters: - in: query name: username schema: type: string description: The username used to login - in: query name: is\_admin schema: type: boolean description: Determines if user is admin user responses: '200': description: '' /logout: get: summary: Logout currently logged in user. description: Redirecting to "/login". responses: '200': description: '' /monitoring/{project\_id}: get: summary: Display optiSLang project monitoring by project ID. description: Display optiSLang project monitoring by project ID. parameters: - in: path name: project\_id schema: type: string required: true description: ID of the project monitoring to display - in: query name: username schema: type: string description: The username used to login - in: query name: password schema: type: string description: The password used to register - in: query name: no\_toolbar schema: type: boolean description: Set to true to hide navigation toolbar responses: '200': description: '' /omdb: get: summary: Download optiSLang system monitoring omdb file. parameters: - in: query name: name schema: type: string description: optiSLang system name required: true - in: query name: working\_dir schema: type: string description: optiSLang system working directory required: true - in: query name: project\_id schema: type: string description: Project ID required: true responses: '200': description: Binary omdb file data content: application/octet-stream: schema: type: string format: binary '401': $ref: '#/components/responses/Unauthorized\_JSON' '500': description: Server error content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string /perform\_actions: post: summary: Perform action(s). requestBody: content: application/json: schema: type: object required: - actions properties: actions: type: array items: type: object required: - project\_id - action\_name properties: project\_id: type: string description: Project ID to perform the action on action\_name: type: string description: Action ID description: Action(s) to perform required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /project\_transfer: post: deprecated: true summary: &gt;- Upload file. Can be an optiSLang project, an optiSLang Web App Wizard or an arbitrary project reference file. This endpoint is deprecated, it will be removed in a future version. Use /upload. requestBody: content: multipart/form-data: schema: type: object properties: osl\_project\_file: type: string format: binary wizard: type: string format: binary file: type: string format: binary working\_dir: type: string required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object required: - location properties: location: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /python\_command: post: summary: Execute a Wizard Python script on the backend side. description: &gt;- Only pre-installed wizard python scripts can be executed. Actual script path is computed server side using configured wizards base directory and provided wizard name and script file name. requestBody: content: application/json: schema: type: object required: - wizard\_name - script\_file - script\_arg properties: wizard\_name: type: string description: Name of the wizard which provides the script script\_file: type: string description: Script file name script\_arg: type: object required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: $ref: '#/components/schemas/python\_response\_message' '401': $ref: '#/components/responses/Unauthorized\_JSON' /register: get: summary: Register user. description: Create user account. Redirecting to "/login" if successfull. parameters: - in: query name: username schema: type: string description: The username used to register required: true - in: query name: password schema: type: string description: The password used to register required: true - in: query name: password\_confirm schema: type: string description: Confirmation of the password used to register required: true responses: '200': description: '' /register\_project: post: summary: Register externally started optiSLang project. requestBody: content: application/json: schema: type: object required: - machine - location - port properties: machine: type: string description: &gt;- Host name of machine the optiSLang project has been started on location: type: string description: Location of the optiSLang project file port: type: integer description: Port of the optiSLang project (server) address: type: string description: &gt;- Host address of machine the optiSLang project has been started on. IP address lookup is used using the machine name in case address is not provided. wizard: type: string description: Name of wizard that has been used to start the project name: type: string description: Project name custom\_data: type: object description: Custom data required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object required: - project\_id properties: project\_id: type: string description: ID for the registered project. '401': $ref: '#/components/responses/Unauthorized\_JSON' /remove\_projects: post: summary: Remove project(s). requestBody: content: application/json: schema: type: object required: - project\_id\_list properties: project\_id\_list: type: array items: type: string description: Project ID(s) to remove required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /remove\_user: post: summary: Remove user. requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: User name required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /remove\_wizards: post: summary: Remove wizard(s). requestBody: content: application/json: schema: type: object required: - wizard\_id\_list properties: wizard\_id\_list: type: array items: type: string description: Wizard ID(s) to remove required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /restart\_server: post: summary: Restart web service application. description: Can only be performed by admin users. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /server\_command: post: summary: Perform command(s) at optiSLang project server. requestBody: content: application/json: schema: type: object required: - project\_id - commands properties: project\_id: type: string description: Project ID commands: type: array items: type: object description: Commands required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_admin\_wizard\_groups: post: summary: Set admin wizard groups. requestBody: content: application/json: schema: type: object required: - admin\_groups properties: admin\_groups: type: object properties: some\_admin\_wizard\_group\_name: type: array items: type: string description: Wizards belonging to this wizard group description: Admin wizard groups required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_automail: post: summary: Set auto mail configuration. requestBody: content: application/json: schema: type: object required: - project\_id - automail\_options properties: project\_id: type: string description: Project ID automail\_options: type: object required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /send\_project\_keepalive: post: summary: Send project keepalive heartbeat message. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_result\_files: post: summary: Register result files with a project. requestBody: content: application/json: schema: type: object required: - project\_id - result\_files properties: project\_id: type: string description: Project ID result\_files: type: array items: type: string required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_user\_groups: post: summary: Set user groups. requestBody: content: application/json: schema: type: object required: - user\_name - user\_groups properties: user\_name: type: string user\_groups: type: array items: type: string description: Groups defined for this user required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_user\_wizard\_groups: post: summary: Set user wizard groups. requestBody: content: application/json: schema: type: object required: - user\_groups properties: user\_groups: type: object properties: some\_user\_wizard\_group\_name: type: array items: type: string description: Wizards belonging to this wizard group description: User wizard groups required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_user\_level: post: summary: Set user level. requestBody: content: application/json: schema: type: object required: - username - user\_level properties: username: type: string description: User name user\_level: type: string enum: - USER - ADMIN description: User level required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_user\_permissions: post: summary: Set additional user permissions for a project. requestBody: content: application/json: schema: type: object required: - project\_id - automail\_options properties: project\_id: type: string description: Project ID automail\_options: type: object required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /set\_wizard\_user\_groups: post: summary: Set wizard user groups. description: &gt;- Wizard user groups can used to restrict wizards to certain user group(s). Can only set by admin users. requestBody: content: application/json: schema: type: object required: - wizard\_id - user\_groups properties: wizard\_id: type: string user\_groups: type: array items: type: string description: User groups defined for this wizard required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /setup: get: summary: First time admin setup. description: &gt;- Create admin account. Perform needed setup steps. Redirecting to "/login" if successfull. parameters: - in: query name: username schema: type: string description: The admin username used to register - in: query name: password schema: type: string description: The admin password used to register - in: query name: password\_confirm schema: type: string description: Confirmation of the admin password used to register responses: '200': description: '' /shutdown\_server: post: summary: Shutdown web service application. description: Can only be performed by admin users. responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /start\_local\_project: post: summary: Start an optiSLang project to run locally on the backend. requestBody: content: application/json: schema: type: object required: - location properties: location: type: string description: &gt;- Location of the optiSLang project file relative to configured projects directory. project\_name: type: string description: Optional project name. File base name is used by default. required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object required: - project\_id properties: project\_id: type: string description: Project ID '401': $ref: '#/components/responses/Unauthorized\_JSON' /start\_project: post: summary: Use a Wizard Python script for a customized optiSLang start. description: &gt;- Only pre-installed wizard python scripts can be used. Actual script path is computed server side using configured wizards base directory and provided wizard name and script file name. requestBody: content: application/json: schema: type: object required: - wizard\_name - custom\_script - custom\_args properties: wizard\_name: type: string description: Name of the wizard which provides the script custom\_script: type: string description: Script file name custom\_args: type: object project\_name: type: string description: &gt;- Optional project name. Project file base name is used by default. required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: $ref: '#/components/schemas/python\_response\_message' '401': $ref: '#/components/responses/Unauthorized\_JSON' /start\_service: post: summary: Start a custom service requestBody: content: application/json: schema: type: object required: - service\_id properties: service\_id: type: string description: Service ID required: true responses: '200': description: The started service's port content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: object properties: port: type: integer '401': $ref: '#/components/responses/Unauthorized\_JSON' /stop\_service: post: summary: Stop a custom service requestBody: content: application/json: schema: type: object required: - service\_id properties: service\_id: type: string description: Service ID required: true responses: '200': description: OK content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /unlock\_project: post: summary: Unlock project. requestBody: content: application/json: schema: type: object required: - project\_id properties: project\_id: type: string description: Project ID required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /update\_user\_groups: post: deprecated: true summary: Update user groups. description: This endpoint is deprected and has no functionality anymore. requestBody: content: application/json: schema: type: object required: - username properties: username: type: string description: User name required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /update\_wizards: post: summary: Update wizard(s). requestBody: content: application/json: schema: type: object required: - wizard\_id\_list properties: wizard\_id\_list: type: array items: type: string description: Wizard ID(s) to remove required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /upload: post: summary: &gt;- Upload file. Can be either an optiSLang project, an optiSLang Web App Wizard or an arbitrary project reference file. requestBody: content: multipart/form-data: schema: oneOf: - type: object required: - osl\_project\_file properties: osl\_project\_file: type: string format: binary description: &gt;- When uploading an optiSLang project file, a new working directory is created within the projects directory. The project file is then uploaded into this working directory. The actual path to the uploaded project file is contained in the reponse. - type: object required: - wizard properties: wizard: type: string format: binary description: &gt;- When uploading an optiSLang Web App Wizard, the App Wizard files are uploaded into wizards directory. The directory name corresponds to the uploaded App Wizard file name. The ID and the url path to the uploaded App Wizard is contained in the reponse. - type: object required: - file properties: file: type: string format: binary description: &gt;- This variant is intended for uploading project reference/input files. Files can only be uploaded into a specific project working directory. Either a project id or a specific project working directory can be specified. When specifying a project id, the working directory entry is optional and needs to be specified relative to the project working directory. Files will never be overwritten. working\_dir: type: string description: &gt;- The directory to upload the file to. Can be specified absolutely or relative to the projects directory. When specified along with project\_id it is treated relative to the project working directory. project\_id: type: string description: &gt;- The id of the project to upload an reference/input file to. required: true responses: '200': description: '' content: application/json: schema: type: object required: - status - message properties: status: $ref: '#/components/schemas/optislang\_web\_service\_response\_status' message: oneOf: - type: string description: Error message - type: object required: - location description: &gt;- This response is returned when using the osl\_project\_file or file variants properties: location: type: string description: &gt;- The filesystem location of the uploaded project or project reference/input file - type: object required: - id - url\_path description: &gt;- This response is returned when using the wizard variant properties: id: type: string description: &gt;- The filesystem location of the uploaded project or project reference/input file url\_path: type: string '401': $ref: '#/components/responses/Unauthorized\_JSON' /wizards/{wizard\_id}: get: summary: Display a wizard by ID. description: Display a wizard by ID. parameters: - in: path name: wizard\_id schema: type: string required: true description: ID of the wizard to display - in: query name: username schema: type: string description: The username used to login - in: query name: password schema: type: string description: The password used to register - in: query name: no\_toolbar schema: type: boolean description: Set to true to hide navigation toolbar responses: '200': description: ''*