The Unity UpMan REST API may be exposed (or disabled) as a regular Unity endpoint. See the main Unity documentation for endpoints configuration details.
All paths must be naturally prefixed with the server’s base URL, endpoint deployment’s path (as configured) and API version (currently there is only one). Example query path can be similar to:
https://unity.example.com/rest-upman/v1/projects/PROJECT-ID
1. API reference
1.1. Create project
@Path("/projects")
@POST
Adds a new project.
If registrationForm, signUpEnquiry or membershipUpdateEnquiry has property autogenerate set to true, the name property should be skipped.
If projectId is null or skipped, it will be auto generated.
Example input:
{
"projectId": "my-project-id",
"public": false,
"displayedName": {
"en": "displayedName"
},
"description": {
"en": "description"
},
"logoUrl": "https://www.myservice.org/logo",
"enableSubprojects": true,
"readOnlyAttributes": [],
"registrationForm": {
"name": "registrationFormName",
"autogenerate": false
},
"signUpEnquiry": {
"name": "signUpEnquiryName",
"autogenerate": false
},
"membershipUpdateEnquiry": {
"name": "membershipUpdateEnquiryName",
"autogenerate": false
}
}
Example output:
{
"id": "my-project-id"
}
1.2. Update project
@Path("/projects/{project-id}")
@PUT
Updates the project.
If registrationForm, signUpEnquiry or membershipUpdateEnquiry has property autogenerate set to true, the name property should be skipped.
Example input:
{
"public": false,
"displayedName": {
"en": "displayedName"
},
"description": {
"en": "description"
},
"logoUrl": "https://www.myservice.org/logo",
"enableSubprojects": true,
"readOnlyAttributes": [],
"registrationForm": {
"name": "registrationFormName",
"autogenerate": false
},
"signUpEnquiry": {
"name": "signUpEnquiryName",
"autogenerate": false
},
"membershipUpdateEnquiry": {
"name": "membershipUpdateEnquiryName",
"autogenerate": false
}
}
1.3. Remove project
@Path("/projects/{project-id}")
@DELETE
Removes the given project.
1.4. Get project
@Path("/projects/{project-id}")
@GET
Retrieves the given project.
Example output:
{
"project-id": "projectId",
"public": false,
"displayedName": {
"en": "displayedName"
},
"description": {
"en": "description"
},
"logoUrl": "https://www.myservice.org/logo",
"enableSubprojects": true,
"readOnlyAttributes": [],
"registrationForm": "registrationFormName",
"signUpEnquiry": "signUpEnquiryName",
"membershipUpdateEnquiry": "membershipUpdateEnquiryName"
}
1.5. Get projects
@Path("/projects")
@GET
Retrieves all projects.
Example output:
[
{
"project-id": "projectId",
"public": false,
"displayedName": {
"en": "displayedName"
},
"description": {
"en": "description"
},
"logoUrl": "https://www.myservice.org/logo",
"enableSubprojects": true,
"readOnlyAttributes": [],
"registrationForm": "registrationFormName",
"signUpEnquiry": "signUpEnquiryName",
"membershipUpdateEnquiry": "membershipUpdateEnquiryName"
}
]
1.6. Add member
@Path("/projects/{project-id}/members/{userId}")
@POST
Adds a user to the specified project.
Property userId should be provided as user’s email.
1.7. Remove member
@Path("/projects/{project-id}/members/{userId}")
@DELETE
Removes a user from the specified project.
1.8. Get member
@Path("/projects/{project-id}/members/{userId}")
@GET
Returns the specified user. Example output:
{
"email": "[email protected]",
"role": "manager",
"attributes": [{
"name": "attribute-name",
"values": ["val1", "val2"]
}]
}
1.9. Get members
@Path("/projects/{project-id}/members")
@GET
Returns all project users. Example output:
[
{
"email": "[email protected]",
"role": "manager",
"attributes": [{
"name": "attribute-name",
"values": ["val1", "val2"]
}]
}
]
1.10. Get member authorization role
@Path("/projects/{project-id}/members/{userId}/role")
@GET
Returns user’s project authorization role.
Property role can be one of (manager, projectsAdmin, regular)
Example output:
{
"role": "manager"
}
1.11. Set member authorization role
@Path("/projects/{project-id}/members/{userId}/role")
@PUT
Updates user’s authorization role.
Property role can be one of (manager, projectsAdmin, regular).
Example output:
{
"role": "manager"
}