709 lines
12 KiB
Markdown
709 lines
12 KiB
Markdown
# Projects API
|
|
|
|
## Get project types [GET /v3/project_types]
|
|
> Get project types list
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
"general"
|
|
]
|
|
```
|
|
|
|
## Get projects list [GET /v3/projects]
|
|
> Get projects list
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
* archived - get only archived projects (true, false)
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{
|
|
"id" : "project id",
|
|
"description" : "",
|
|
"owner": "owner"
|
|
}
|
|
]
|
|
```
|
|
|
|
## Create project [POST /v3/project]
|
|
> Create new project
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "project id",
|
|
"description" : "project description"
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 201**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "project_id"
|
|
"message" : "Created"
|
|
}
|
|
```
|
|
|
|
## Show project [GET /v3/project/:project]
|
|
> Get project with id ':project'
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id" : "project id",
|
|
"description" : "",
|
|
"owner": "owner",
|
|
"project_users": [],
|
|
"run_list": [],
|
|
"environments": []
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Update project [PUT /v3/project/:project]
|
|
> Update project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_projects
|
|
* Method: PUT
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"description" : "",
|
|
"project_users": [],
|
|
"run_list": []
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Delete project [DELETE /v3/project/:project]
|
|
> Delete project with id ':project'
|
|
|
|
### Request
|
|
* Policy: delete_projects
|
|
* Method: DELETE
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "project id"
|
|
"message": "Deleted"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Set project run list [POST /v3/project/:project/run_list]
|
|
> Set run_list for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
"role"
|
|
]
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "Updated"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Show project servers [GET /v3/project/:project/servers]
|
|
> Get servers list for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{}
|
|
]
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Delete project servers [DELETE /v3/project/:project/servers]
|
|
> Delete servers for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: delete_projects
|
|
* Method: DELETE
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "project id"
|
|
"message": "Deleted"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Deploy project servers [POST /v3/project/:project/servers/deploy]
|
|
> Deploy all server for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: deploy_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"servers": [
|
|
"server id"
|
|
],
|
|
"environment": "deploy env"
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "Updated"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Archive project [POST /v3/project/:project/archive]
|
|
> Archive project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "Updated"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Unarchive project [POST /v3/project/:project/unarchive]
|
|
> unarchive project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "Updated"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Show project stacks [GET /v3/project/:project/stacks]
|
|
> Get stacks list for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{}
|
|
]
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Delete project stacks [DELETE /v3/project/:project/stacks]
|
|
> Delete stacks for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: delete_projects
|
|
* Method: DELETE
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "project id"
|
|
"message": "Deleted"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Show project environments [GET /v3/project/:project/environments]
|
|
> Get environments list for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
{}
|
|
]
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|
|
|
|
## Add environment [POST /v3/project/:project/environment]
|
|
> Add new environment to project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "deploy env id",
|
|
"run_list": [],
|
|
"categories": [
|
|
{
|
|
"id" : "category id",
|
|
"provider": {
|
|
"name": "provider name",
|
|
"account": "provider account",
|
|
"flavor": "provider flavor",
|
|
"image": "image id",
|
|
"security_groups": [
|
|
"default"
|
|
],
|
|
"stack_template": "stack template id",
|
|
"subnet": "subnet id (aws only)",
|
|
"vpc_id": "vpc id (aws only)",
|
|
"subnets": [
|
|
"subnet id"
|
|
] (openstack only)
|
|
},
|
|
"cm_tool": {
|
|
"name": "cm tool name",
|
|
"bootstrap_template": ""
|
|
}
|
|
}
|
|
],
|
|
"users": [
|
|
"user1"
|
|
],
|
|
"expires": null
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message" : "Added"
|
|
}
|
|
```
|
|
|
|
## Show environment [GET /v3/project/:project/environment/:env]
|
|
> Show environment ':env' for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: read_projects
|
|
* Method: GET
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
* :project - project id
|
|
* :env - deploy environment identifier
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"id": "deploy env id",
|
|
"run_list": [],
|
|
"categories": [
|
|
{
|
|
"id" : "category id",
|
|
"provider": {
|
|
"name": "provider name",
|
|
"account": "provider account",
|
|
"flavor": "provider flavor",
|
|
"image": "image id",
|
|
"security_groups": [
|
|
"default"
|
|
],
|
|
"stack_template": "stack template id",
|
|
"subnet": "subnet id (aws only)",
|
|
"vpc_id": "vpc id (aws only)",
|
|
"subnets": [
|
|
"subnet id"
|
|
] (openstack only)
|
|
},
|
|
"cm_tool": {
|
|
"name": "cm tool name",
|
|
"bootstrap_template": ""
|
|
}
|
|
}
|
|
],
|
|
"users": [
|
|
"user1"
|
|
],
|
|
"expires": null
|
|
}
|
|
```
|
|
|
|
## Update environment [PUT /v3/project/:project/environment/:env]
|
|
> Update environment ':env' for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: PUT
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
* :project - project id
|
|
* :env - deploy environment identifier
|
|
* Body
|
|
```json
|
|
{
|
|
"id": "deploy env id",
|
|
"run_list": [],
|
|
"categories": [
|
|
{
|
|
"id" : "category id",
|
|
"provider": {
|
|
"name": "provider name",
|
|
"account": "provider account",
|
|
"flavor": "provider flavor",
|
|
"image": "image id",
|
|
"security_groups": [
|
|
"default"
|
|
],
|
|
"stack_template": "stack template id",
|
|
"subnet": "subnet id (aws only)",
|
|
"vpc_id": "vpc id (aws only)",
|
|
"subnets": [
|
|
"subnet id"
|
|
] (openstack only)
|
|
},
|
|
"cm_tool": {
|
|
"name": "cm tool name",
|
|
"bootstrap_template": ""
|
|
}
|
|
}
|
|
],
|
|
"users": [
|
|
"user1"
|
|
],
|
|
"expires": null
|
|
}
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
|
|
"message" : "Updated"
|
|
}
|
|
```
|
|
**Status: 422**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
}
|
|
```
|
|
|
|
## Delete environment [DELETE /v3/project/:project/environment/:env]
|
|
> Delete environment ':env' for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: delete_project
|
|
* Method: DELETE
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
* :project - project id
|
|
* :env - deploy environment identifier
|
|
|
|
### Response
|
|
**Status: 204**
|
|
|
|
## Add category to environment [POST /v3/project/:project/environment/:env/category]
|
|
> Add new category to environment ':env' for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: update_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
* :project - project id
|
|
* :env - environment identifier
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "",
|
|
"category": {}
|
|
}
|
|
```
|
|
|
|
## Delete category from environment [DELETE /v3/project/:project/environment/:env/category/:id]
|
|
> Delete category from environment ':env' for project with id ':project'
|
|
|
|
### Request
|
|
* Policy: update_project
|
|
* Method: DELETE
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Params:
|
|
* :project - project id
|
|
* :env - deploy environment identifier
|
|
* :id - category id
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "",
|
|
"category": {}
|
|
}
|
|
```
|
|
|
|
|
|
## Set environment run list [POST /v3/project/:project/environment/:env/run_list]
|
|
> Set run_list for environment ':env' in project with id ':project'
|
|
|
|
### Request
|
|
* Policy: create_project
|
|
* Method: POST
|
|
* Headers:
|
|
* Accept: application/json
|
|
* Body:
|
|
```json
|
|
[
|
|
"role"
|
|
]
|
|
```
|
|
|
|
### Response
|
|
**Status: 200**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{
|
|
"message": "Updated"
|
|
}
|
|
```
|
|
**Status: 404**
|
|
* Headers:
|
|
* Content-Type: application/json
|
|
* Body:
|
|
```json
|
|
{}
|
|
```
|