Obeo Designer Team Server - Administration Server

This guide describe the REST API of the administration server for Obeo Designer Team Server. This API will allow you to manage CDO repositories, shared modeling projects and depending on the type of repository you manage, you will be able to manager the repository users. If you already have configured the administration server for Obeo Designer Team Server you can start to use our API.

Remark: The protocol, host and port can be different from your server configuration.

In this documentation we will use the web service API in the version v1.0.

Disclaimers: As basic authentication is enabled for the administration server, the Authorization header must be added in all requests with the base64 encoded credentials.

Disclaimer: The administration server for Obeo Designer Team Server is currently installed in Team for Capella Server.

This page has been generated from odts-admin-ws.yaml available in the server/experimental/openapi folder of your Team for Capella installation folder.
More information: https://www.obeosoft.com/en/team-for-capella-download
Contact Info: support@obeo.fr
Version: 1.0.0
Copyright (c) 2017, 2022 THALES GLOBAL SERVICE.
EULA

Methods

[ Jump to Models ]

Table of Contents

Commands

Projects

Repositories

Tasks

Users

Commands

Up
get /command
Execute an allowed OSGI Command (command)
Execute the given command on the current server.

Query parameters

command (required)
Query Parameter — id of a command provider
params (optional)
Query Parameter — paramValue1,paramValue2,param3,...

Return type

inline_response_201_1

Example data

Content-Type: application/json
{
  "message" : "message",
  "command" : "command",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

201

Command response inline_response_201_1

404

Not Found

Projects

Up
delete /projects/{repositoryId}/{projectId}
Delete a project (deleteProject)

Delete a project.

No effect on static repositories.

Path parameters

repositoryId (required)
Path Parameter — Id of a repository
projectId (required)
Path Parameter — Id of project to delete

Return type

inline_response_202_2

Example data

Content-Type: application/json
{
  "pid" : 0,
  "repositoryName" : "repositoryName",
  "projectName" : "projectName",
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

202

Ok inline_response_202_2

Example data

Content-Type: application/json
{"repositoryName":"SampleRepository","projectName":"Simple","log":"http://localhost:8080/api/v1.0/exports/logs/ExportCall1118498032469818516.log","pid":15876,"message":"The project MyProject of SampleRepository deletion has been triggered.","status":200}

404

Project or repository not found.

Example data

Content-Type: Repository not found
{"error":"No repository: noRepository","message":"Deleting Project of noRep failed.","status":404}

Example data

Content-Type: Project not found
{"error":"Resource node not found: NoProject","message":"Deleting Project of SampleRepository failed.","status":404}

409

<p>Fail because of concurrent access.</p> <p>Deleting projects cannot be concurrent. If an instance of this command is still running, the request is rejected.</p>

Example data

Content-Type: application/json
{"error":"Platform already busy","message":"The project %1s has not been deleted.","status":409}

500

If process cannot be started inline_response_500

Example data

Content-Type: application/json
{"error":"Cannot run program \"norunnable.exe\": CreateProcess error=2, Specified file cannot be found","message":"Deleting Project of SampleRepository failed.","status":500}

Up
get /projects/{repositoryId}/{projectId}
Extract project from a repository into a folder or an archive (extractProject)
Create a process on server to extract project. Server must a be installed with a Meta-model aware client.

Path parameters

repositoryId (required)
Path Parameter — Id of a repository
projectId (required)
Path Parameter — Id of project to extract or '*' (encoded '%2A') for all projects

Query parameters

systemPath (optional)
Query Parameter — Provide a server path instead of a download url. (false if omitted)

Return type

inline_response_202_1

Example data

Content-Type: application/json
{
  "paths" : [ "paths", "paths" ],
  "pid" : 0,
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

202

Ok inline_response_202_1

Example data

Content-Type: Extract with System Path
{"paths":["C:\\installationPath\\server\\dynamic\\tools\\Importer\\output\\Simple_20220502_225331.zip","C:\\installationPath\\server\\dynamic\\tools\\Importer\\output\\Another Project_20220502_225331.zip"],"log":"http://localhost:8080/api/v1.0/exports/logs/ImportCall1118498032469818518.log","pid":17436,"message":"Extract Projects from SampleRepository","status":202}

Example data

Content-Type: Extract one project
{"paths":["http://localhost:8080/api/v1.0/exports/projects/SampleRepository/Simple_20220502_200922.zip"],"log":"http://localhost:8080/api/v1.0/exports/logs/ImportCall1118498032469818516.log","pid":444,"message":"Extract Project Simple from SampleRepository","status":202}

Example data

Content-Type: Extract all projects using *
{"paths":["http://localhost:8080/api/v1.0/exports/projects/SampleRepository/Simple_20220502_200922.zip","http://localhost:8080/api/v1.0/exports/projects/SampleRepository/Another%20Project_20220502_200922.zip"],"log":"http://localhost:8080/api/v1.0/exports/logs/ImportCall1118498032469818517.log","pid":17436,"message":"Extract Projects from SampleRepository","status":202}

404

Project or repository not found.

Example data

Content-Type: Repository not found
{"error":"No repository: norep","message":"Extract Project noProject from norep failed.","status":404}

Example data

Content-Type: Project not found
{"error":"Resource node not found: noProject","message":"Extract Project noProject from SampleRepository failed.","status":404}

409

<p>Fail because of concurrent access.</p> <p>Reading projects cannot be concurrent. If an instance of this command is still running, the request is rejected.</p>

Example data

Content-Type: application/json
{"error":"Platform already busy","message":"Getting the project has not been started.","status":409}

500

If process cannot be started

Example data

Content-Type: application/json
{"error":"Cannot run program \"norunnable.exe\": CreateProcess error=2, Specified file cannot be found","message":"Extract Project myProject from myRepo failed","status":500}

Up
get /projects/{repositoryId}
List projects of a repository (getProjects)
Retrieve projects of a repository.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Return type

inline_response_200_3

Example data

Content-Type: application/json
{
  "projects" : [ {
    "repositoryName" : "repositoryName",
    "projectName" : "projectName"
  }, {
    "repositoryName" : "repositoryName",
    "projectName" : "projectName"
  } ],
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_3

Example data

Content-Type: application/json
{"projects":[{"repositoryName":"SampleRepository","projectName":"Simple","path":"Simple"},{"repositoryName":"SampleRepository","projectName":"Another Project","path":"Another%20Project"}],"message":"Listing Projects of SampleRepository","status":200}

404

Reposity not found

Example data

Content-Type: application/json
{"error":"No repository: norepo","message":"Listing Projects of norepo failed.","status":404}

Up
post /projects/{repositoryId}
Write a project or a set of project into a repository (postProjects)

Write projects into a repository reading an archive or a folder of projects of the local.

The resources must be available on the server and this service requires a local client with projects' metamodel.

This service uses 'export' application and can be configured in 'admin-server.properties' using 'admin.server.api.project.get.impl.config' keys.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Query parameters

sourcePath (required)
Query Parameter — Path of resources to write into repository
overrideExistingProject (optional)
Query Parameter — Force existing project to override. (false if omitted)

Return type

inline_response_202

Example data

Content-Type: application/json
{
  "pid" : 0,
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

202

<p>Local tool has been successfully called.</p> <p>This does not mean the tool execution is successful.</p> inline_response_202

Example data

Content-Type: application/json
{"log":"http://localhost:8080/api/v1.0/exports/logs/ExportCall8720710734823864513.log","pid":123456789,"message":"Post Projects","status":202}

404

Reposity not found

Example data

Content-Type: application/json
{"error":"No repository: norepo","message":"Post Projects failed.","status":404}

409

<p>Fail because of concurrent access.</p> <p>Writing projects cannot be concurrent. If an instance of this command is still running, the request is rejected.</p>

Example data

Content-Type: application/json
{"error":"Platform already busy","message":"Uploading Projects into the repository has not started.","status":409}

500

If process cannot be started inline_response_500

Example data

Content-Type: application/json
{"error":"Cannot run program \"norunnable.exe\": CreateProcess error=2, Specified file cannot be found","message":"Extract Project myProject from myRepo failed","status":500}

Repositories

Up
post /repositories
Create a repository (addRepository)

This request will allow you to creates a repository. The body of the request take a JSON object with the following parameters: repositoryName, authenticationType and datasourceType which are mandatory and also authenticationData and datasourceData which are optional.

The repository name can contain only word characters (a-zA-Z_0-9) and "-".

While the authenticationType value can be empty, the repositoryName and the datasourceType values cannot.

By default you can use the following values to manage your repositories:

You can also contribute your own extensions and use the key value of your extension as described in the Administration Server documentation.

Those values describe how your repository will manage authentication and database.

As the optional parameters (authenticationData and datasourceDat) depends on the mandatory parameters, we will use examples to describe how to use them.

The repository is started after its creation and lifecycle hooks are called before and after its start.

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

body NewRepository (required)
Body Parameter — See example descriptions.
example: { "description" : "Create a repository without authentication with an H2 embedded database.\n\nWith an empty value set to _authenticationType_ your repository will not have authentication. With _H2_EMBEDDED_ value set to _datasourceType_ your repository database will be an h2 embedded database.\n", "value" : { "repositoryName" : "repository-without-authentication", "authenticationType" : "", "datasourceType" : "H2_EMBEDDED" } }

Return type

inline_response_201

Example data

Content-Type: application/json
{
  "repository" : {
    "datasourceType" : "H2_EMBEDDED",
    "authenticationType" : "",
    "repositorName" : "repositorName",
    "type" : "STATIC",
    "status" : "ONLINE"
  },
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

201

Repository response inline_response_201

Example data

Content-Type: UserProfile + LDAP authentication, H2 Embedded
{"repository":{"name":"repository-with-userprofile-ldap","status":"ONLINE","type":"DYNAMIC","authenticationType":"LDAP_USERPROFILE","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-userprofile-ldap has been created.","status":201}

Example data

Content-Type: UserManager + OpenID Connect authentication, H2 Embedded
{"repository":{"name":"repository-with-file-openidconnect","status":"ONLINE","type":"DYNAMIC","authenticationType":"OPENIDC_FILE","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-file-openidconnect has been created.","status":201}

Example data

Content-Type: UseUserProfilerManager authentication, H2 Embedded
{"repository":{"name":"repository-with-userprofile","status":"ONLINE","type":"DYNAMIC","authenticationType":"USERPROFILE","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-userprofile has been created.","status":201}

Example data

Content-Type: UserManager authentication, H2 Embedded
{"repository":{"name":"repository-with-file","status":"ONLINE","type":"DYNAMIC","authenticationType":"FILE","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-file has been created.","status":201}

Example data

Content-Type: UserManager + LDAP authentication, H2 Embedded
{"repository":{"name":"repository-with-file-ldap","status":"ONLINE","type":"DYNAMIC","authenticationType":"LDAP_FILE","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-file-ldap has been created.","status":201}

Example data

Content-Type: No authentication, H2 Embedded
{"repository":{"name":"repository-without-authentication","status":"ONLINE","type":"DYNAMIC","authenticationType":"","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-without-authentication has been created.","status":201}

Example data

Content-Type: LDAP authenticationn, H2 Embedded
{"repository":{"name":"repository-with-ldap","status":"ONLINE","type":"DYNAMIC","authenticationType":"LDAP","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-ldap has been created.","status":201}

Example data

Content-Type: OpenID Connect authenticationn, H2 Embedded
{"repository":{"name":"repository-with-openidconnect","status":"ONLINE","type":"DYNAMIC","authenticationType":"OPENIDC","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-openidconnect has been created.","status":201}

Example data

Content-Type: UserProfile + OpenID Connect authentication, H2 Embedded
{"repository":{"name":"repository-with-userprofile-openidconnect","status":"ONLINE","type":"DYNAMIC","authenticationType":"OPENIDC_USERPROFILE","datasourceType":"H2_EMBEDDED"},"message":"The repository repository-with-userprofile-openidconnect has been created.","status":201}

Example data

Content-Type: No authentication, H2 Server
{"repository":{"name":"repository-without-authentication","status":"ONLINE","type":"DYNAMIC","authenticationType":"","datasourceType":"H2_SERVER"},"message":"The repository repository-without-authentication3 has been created.","status":201}

400

<p>Bad Request</p> <p>Some parameters depend on the repository type (authentication and database), their validation is done by the corresponding extensions.</p>

Example data

Content-Type: application/json
{"message":"The repository repository-with-userprofile-ldap has not been created.","status":400,"error":"The url to the ldap server is empty."}

500

<p>Internal error</p> <p>Something unexpected occurred during the repository creation.</p>

Example data

Content-Type: application/json
{"message":"The repository repository-with-userprofile-ldap has not been created.","status":500,"error":"An error occurred during the repository configuration: The h2 server was not able to start.\nException: ...."}

Up
delete /repositories/{repositoryId}
Delete a repository (deleteRepository)

Delete a repository that was created using the create repository web service.

The deletetion of repository removes the folder and all of its content in the directory that contains the repositories. This directory can be configured in the properties files of the administration server as described in Administration Server configuration.

No effect on static repositories.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Query parameters

deleteDatabase (optional)
Query Parameter — Parameter to indicate if the database must be deleted or kept. true by default. No effect for the moment

Return type

inline_response_200_1

Example data

Content-Type: application/json
{
  "repositoryName" : "repositoryName",
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_1

Example data

Content-Type: application/json
{"repositoryName":"SampleRepository","isDatabaseDeleted":true,"message":"The repository SampleRepository has been completely deleted.","status":200}

204

No Content

404

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository has not been found.","message":"The repository SampleRepository has not been deleted.","status":404}

500

Server error for static repository

Example data

Content-Type: application/json
{"error":"Something happens during the repository deletion: The repository designer-server could not to be stopped because the file used to store repository data has not been found.","message":"The repository repository-with has not been deleted.","status":500}

Up
post /repositories/export/{repositoryId}
Export the repository database as xml or encrypted zip file (exportRepository)

Export the database of the repository into an xml file.

The body of the request take two parameters: needsEncryption which is mandatory and password which is optional but needed if needsEncryption is set to true.

As the export of the database can take time, the web service will schedule an asynchronous job and return the link where you will be able to download the file in the response under the url attribute.

If needsEncryption is set to false the export of the database will create an xml file representing the CDO database in the export folder which can be configured in the properties files of the Administration Server as described in Administration Server configuration. If needsEncryption is set to true then an encrypted zip file containing the xml file will be created instead.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

body export_repositoryId_body (required)
Body Parameter — Export parameters
example: { "value" : { "needsEncryption" : true, "password" : "aPassword" } }

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

202

Ok

Example data

Content-Type: clearExport
{"url":"http://localhost:8080/api/v1.0/exports/repositories/uc2/uc2_200306122258+0100.xml","repository":"SampleRepository","message":"The export for the repository uc2 as been launched. You will be able to retrieved the exported data at the url: http://localhost:8080/api/v1.0/exports/repositories/uc2/uc2_200306122258+0100.xml","status":202}

Example data

Content-Type: encryptedExport
{"url":"http://localhost:8080/api/v1.0/exports/repositories/uc2/uc2_200306122313+0100.zip","repository":"SampleRepository","message":"The export for the repository uc2 as been launched. You will be able to retrieved the exported data at the url: http://localhost:8080/api/v1.0/exports/repositories/uc2/uc2_200306122313+0100.zip","status":202}

400

Bad request

Example data

Content-Type: application/json
{"error":"NO_ISSUE_DIAGNOSTIC","message":"The repository repository-with-file will not be exported.","status":400}

404

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository has not been found.","message":"The repository SampleRepository will not be exported.","status":404}

Up
get /repositories
List all repositories (getRepositories)
Retrieve all repositories on the current server.

Return type

inline_response_200

Example data

Content-Type: application/json
{
  "repositories" : [ {
    "datasourceType" : "H2_EMBEDDED",
    "authenticationType" : "",
    "repositorName" : "repositorName",
    "type" : "STATIC",
    "status" : "ONLINE"
  }, {
    "datasourceType" : "H2_EMBEDDED",
    "authenticationType" : "",
    "repositorName" : "repositorName",
    "type" : "STATIC",
    "status" : "ONLINE"
  } ],
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200

Example data

Content-Type: application/json
{"repositories":[{"name":"OnlineDynamicRepositorySample","status":"ONLINE","type":"DYNAMIC","authenticationType":"","datasourceType":"H2_EMBEDDED"},{"name":"OfflineDynamicRepositorySample","status":"OFFLINE","type":"DYNAMIC","authenticationType":"","datasourceType":"H2_EMBEDDED"},{"name":"designer-server","status":"ONLINE","type":"STATIC"}],"message":"All available repositories","status":200}

404

Not Found

Up
post /repositories/import/{repositoryId}
Restores the repository database from an xml file (importRepository)

Restore a repository from the uploaded xml file.

This file must be a backup of the database.

If the repository was exported as a zip, it must be unzipped manually before being imported.

As this API needs a file, we suggest you to use the input file of your favorite browser in order to let it set the correct headers for the upload of the file. As the import of the database can take time, the web service will schedule an asynchronous job.

The state (ONLINE | OFFLINE) of the repository will be the same after the import as before the import.

Static repositories are not managed.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Consumes

This API call consumes the following media types via the Content-Type request header:

Form parameters

xmlFile (required)
Form Parameter — format: binary

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

202

Request accepted

Example data

Content-Type: appication/json
{"repository":"SampleRespository","message":"The data are being imported to the repository SampleRepository. The state of the repository will be the same after and before the import.","status":202}

400

Bad Request

Example data

Content-Type: Connected users
{"message":"The import of the repository repository-with-userprofile will not be launched.","status":400,"error":"The import will not be executed because some connections remains (alice, bob)"}

Example data

Content-Type: Wrong kind of request
{"error":"javax.servlet.ServletException: Not a multipart request!","status":400}

404

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository has not been found.","message":"The import of the repository SampleRepository will not be launched.","status":404}

Up
get /repositories/start/{repositoryId}
Start a repository (startRepository)

Start a repository that was created using the web service to create a repository.

The lifecycle hooks will be called before and after its start.

No effect on static repositories.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Return type

inline_response_201

Example data

Content-Type: application/json
{
  "repository" : {
    "datasourceType" : "H2_EMBEDDED",
    "authenticationType" : "",
    "repositorName" : "repositorName",
    "type" : "STATIC",
    "status" : "ONLINE"
  },
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_201

Example data

Content-Type: application/json
{"repository":{"name":"SampleRepository","status":"ONLINE","type":"DYNAMIC","authenticationType":"LDAP_USERPROFILE","datasourceType":"H2_EMBEDDED"},"message":"The repository uc1 has been started.","status":200}

400

Ko

Example data

Content-Type: application/json
{"error":"The repository SampleRepository is not stopped.","message":"The repository SampleRepository has not been started.","status":400}

404

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository has not been found.","message":"The repository SampleRepository has not been started.","status":404}

Up
get /repositories/stop/{repositoryId}
Stop a repository (stopRepository)

Stop a repository that was created using the web service to create a repository.

The lifecycle hooks will be called before and after its stop.

No effect on static repositories.

Path parameters

repositoryId (required)
Path Parameter — id of a repository

Return type

inline_response_200_2

Example data

Content-Type: application/json
{
  "repository" : {
    "repositorName" : "repositorName",
    "type" : "STATIC",
    "status" : "ONLINE"
  },
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_2

Example data

Content-Type: application/json
{"repository":{"name":"SampleRepository","status":"OFFLINE","type":"DYNAMIC"},"message":"The repository SampleRepository has been stopped.","status":200}

400

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository is not started.","message":"The repository SampleRepository has not been stopped.","status":400}

404

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository has not been found.","message":"The repository SampleRepository has not been stopped.","status":404}

500

Server error for static repository

Example data

Content-Type: application/json
{"error":"An error occurred while stopping the repository: The repository designer-server could not to be stopped because the file used to store repository data has not been found.","message":"The repository designer-server has not been stopped.","status":500}

Tasks

Up
get /tasks/{taskId}
Query the state of an asynchronous process (getTaskState)
Evaluate the status of asynchronous task. Service cannot evaluate if task failed or successed. Service only evaluates if a task is running.

Path parameters

taskId (required)
Path Parameter — id of a task format: int64

Return type

inline_response_200_4

Example data

Content-Type: application/json
{
  "running" : true,
  "pid" : 0,
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_4

Example data

Content-Type: application/json
{"pid":123456789,"running":true,"message":"Status of task 123456789","status":200}

Users

Up
post /users
Create a new user to the repository (addUser)

Create a user in the repository.

The body of the request take a JSON object with the following parameters: id, isAdministrator, password and permissions. The id and isAdministrator are mandatory.

The password is required if the repository authentication is not managed with LDAP.

The permissions parameter is used for repositories with authorization managed with user profiles. This parameter is an array of project name which will be used to grant writing rights to the user for those projects.

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

body NewUser (optional)
Body Parameter — User to create.
example: { "value" : { "id" : "Horatio Nelson", "isAdmin" : true, "password" : "samplePassword", "permissions" : [ ] } }

Query parameters

repositoryName (required)
Query Parameter — id of a repository

Return type

inline_response_200_6

Example data

Content-Type: application/json
{
  "projectNames" : [ "projectNames", "projectNames" ],
  "repositoryName" : "repositoryName",
  "message" : "message",
  "user" : {
    "permissions" : [ "permissions", "permissions" ],
    "id" : "id",
    "isAdmin" : true
  },
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_6

Example data

Content-Type: User with permissions
{"user":{"id":"John Fryer","isAdmin":false,"permissions":["Awesome-project"]},"repositoryName":"repository-with-userprofile","projectNames":["Awesome-project"],"message":"The user Horatio Nelson has been created in the repository repository-with-userprofile.","status":201}

Example data

Content-Type: Admin
{"user":{"id":"Horatio Nelson","isAdmin":true,"permissions":[]},"repositoryName":"repository-with-userprofile","projectNames":["Awesome-project"],"message":"The user Horatio Nelson has been created in the repository repository-with-userprofile.","status":201}

400

Bad Request

Example data

Content-Type: Respository not found
{"error":"The repository SampleRepository has not been found.","message":"The user Horatio Nelson4 cannot be created.","status":400}

Example data

Content-Type: Existing user
{"error":"The user is already registered for repository repository-with-userprofile.","message":"The user Horatio Nelson cannot be created.","status":400}

Up
delete /users/{userName}
Delete the user from the repository (deleteUser)
Deletes the user from the repository.

Path parameters

userName (required)
Path Parameter — id of a user

Query parameters

repositoryName (required)
Query Parameter — id of a repository

Return type

inline_response_200_1

Example data

Content-Type: application/json
{
  "repositoryName" : "repositoryName",
  "message" : "message",
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_1

Example data

Content-Type: application/json
{"repositoryName":"repository-with-userprofile","message":"The user Horatio Nelson has been deleted from the repository repository-with-userprofile.","status":200}

400

Bad Request

Example data

Content-Type: application/json
{"error":"The repository repository-with-userprofile has not been found.","message":"The user Horatio Nelson has not been deleted from the repository repository-with-userprofile.","status":400}

404

Not Found

Example data

Content-Type: application/json
{"error":"The user Horatio Nelson has not been found in the repository repository-with-userprofile.","message":"The user Horatio Nelson has not been deleted from the repository repository-with-userprofile.","status":404}

Up
get /users
List all users of a repository (listUsers)
List all users the given repository.

Query parameters

repositoryName (required)
Query Parameter — id of a repository

Return type

inline_response_200_5

Example data

Content-Type: application/json
{
  "repositoryName" : "repositoryName",
  "message" : "message",
  "users" : [ {
    "permissions" : [ "permissions", "permissions" ],
    "id" : "id",
    "isAdmin" : true
  }, {
    "permissions" : [ "permissions", "permissions" ],
    "id" : "id",
    "isAdmin" : true
  } ],
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_5

Example data

Content-Type: application/json
{"repositoryName":"repository-with-userprofile","users":[{"id":"Horatio Nelson","isAdmin":true,"permissions":[]}],"message":"The list of users for the repository repository-with-userprofile.","status":200}

400

Not Found

Example data

Content-Type: application/json
{"error":"The repository SampleRepository has not been found.","message":"Users cannot be listed on repository SampleRepository.","status":400}

Up
put /users/{userName}
Update the user of the repository (updateUser)

Update user data.

The behavior of this service is to delete and recreate the user with the new data.

The body of the request takes the same data than the creation request.

Path parameters

userName (required)
Path Parameter — id of a user

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

body NewUser (optional)
Body Parameter — New user data.
example: { "id" : "Horatio Nelson", "isAdmin" : false, "password" : "samplePassword", "permissions" : [ "Other-project" ] }

Query parameters

repositoryName (required)
Query Parameter — id of a repository

Return type

inline_response_200_6

Example data

Content-Type: application/json
{
  "projectNames" : [ "projectNames", "projectNames" ],
  "repositoryName" : "repositoryName",
  "message" : "message",
  "user" : {
    "permissions" : [ "permissions", "permissions" ],
    "id" : "id",
    "isAdmin" : true
  },
  "status" : "status"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Ok inline_response_200_6

Example data

Content-Type: application/json
{"user":{"id":"Horatio Nelson","isAdmin":false,"permissions":["Other-project"]},"repositoryName":"repository-with-userprofile","projectNames":["Awesome-project","Other-project"],"message":"The user Horatio Nelson has been updated in the repository repository-with-userprofile.","status":201}

400

Bad Request

Example data

Content-Type: Respository not found
{"error":"The repository SampleRepository has not been found.","message":"The user Horatio Nelson has not been updated in the repository SampleRepository.","status":400}

Example data

Content-Type: Different user name in data
{"error":"The user name of the user (John Fryer) to update is not the same than the user name provided in data used to update (John Fryer2).","message":"The user John Fryer has not been updated in the repository SampleRepository.","status":400}

404

Not Found

Example data

Content-Type: application/json
{"error":"The user John Fryer has not been found in the repository repository-with-userprofile.","message":"The user John Fryers has not been updated in the repository repository-with-userprofile.","status":404}

Models

[ Jump to Methods ]

Table of Contents

  1. NewRepository
  2. NewUser
  3. Project
  4. Repository
  5. SimpleRepository
  6. User
  7. export_repositoryId_body
  8. import_repositoryId_body
  9. inline_response_200
  10. inline_response_200_1
  11. inline_response_200_2
  12. inline_response_200_3
  13. inline_response_200_4
  14. inline_response_200_5
  15. inline_response_200_6
  16. inline_response_201
  17. inline_response_201_1
  18. inline_response_202
  19. inline_response_202_1
  20. inline_response_202_2
  21. inline_response_500

NewRepository Up

repositorName (optional)
authenticationType
Enum:
LDAP
OPENIDC
FILE
LDAP_FILE
OPENIDC_FILE
USERPROFILE
LDAP_USERPROFILE
OPENIDC_USERPROFILE
authenticationData (optional)
datasourceType
Enum:
H2_EMBEDDED
H2_SERVER
datasourceData (optional)

NewUser Up

id
password (optional)
String format: password
isAdmin
permissions (optional)

Project Up

repositoryName
projectName

Repository Up

repositorName (optional)
status (optional)
Enum:
ONLINE
OFFLINE
type (optional)
Enum:
STATIC
DYNAMIC
authenticationType (optional)
Enum:
LDAP
OPENIDC
FILE
LDAP_FILE
OPENIDC_FILE
USERPROFILE
LDAP_USERPROFILE
OPENIDC_USERPROFILE
datasourceType (optional)
Enum:
H2_EMBEDDED
H2_SERVER

SimpleRepository Up

repositorName (optional)
status (optional)
Enum:
ONLINE
OFFLINE
type (optional)
Enum:
STATIC
DYNAMIC

User Up

id (optional)
isAdmin (optional)
permissions (optional)

export_repositoryId_body Up

needsEncryption
password (optional)
String format: password

import_repositoryId_body Up

xmlFile (optional)
byte[] format: binary

inline_response_200 Up

repositories (optional)
message (optional)
status (optional)

inline_response_200_1 Up

repositoryName (optional)
message (optional)
status (optional)

inline_response_200_2 Up

repository (optional)
message (optional)
status (optional)

inline_response_200_3 Up

projects (optional)
message (optional)
status (optional)

inline_response_200_4 Up

pid (optional)
Integer format: int644
running (optional)
message (optional)
status (optional)

inline_response_200_5 Up

repositoryName (optional)
users (optional)
message (optional)
status (optional)

inline_response_200_6 Up

user (optional)
repositoryName (optional)
projectNames (optional)
message (optional)
status (optional)

inline_response_201 Up

repository (optional)
message (optional)
status (optional)

inline_response_201_1 Up

command (optional)
message (optional)
status (optional)

inline_response_202 Up

pid (optional)
Long format: int64
message (optional)
status (optional)

inline_response_202_1 Up

pid (optional)
Long format: int64
message (optional)
status (optional)
paths (optional)

inline_response_202_2 Up

repositoryName (optional)
projectName (optional)
pid (optional)
Long format: int64
message (optional)
status (optional)

inline_response_500 Up

error (optional)
message (optional)
status (optional)