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
 | |
| {}
 | |
| ```
 | 
