fluke/devops-service/doc/projects.md
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

12 KiB

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:
[
  "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:
[
  {
    "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:
{
  "id": "project id",
  "description" : "project description"
}

Response

Status: 201

  • Headers:
    • Content-Type: application/json
  • Body:
{
  "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:
{
  "id" : "project id",
  "description" : "",
  "owner": "owner",
  "project_users": [],
  "run_list": [],
  "environments": []
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

Update project [PUT /v3/project/:project]

Update project with id ':project'

Request

  • Policy: create_projects
  • Method: PUT
  • Headers:
    • Accept: application/json
  • Body:
{}

Response

Status: 200

  • Headers:
    • Content-Type: application/json
  • Body:
{
  "description" : "",
  "project_users": [],
  "run_list": []
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
  "id": "project id"
  "message": "Deleted"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
[
 "role"
]

Response

Status: 200

  • Headers:
    • Content-Type: application/json
  • Body:
{
  "message": "Updated"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
[
  {}
]

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
  "id": "project id"
  "message": "Deleted"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
 "servers": [
   "server id"
 ],
 "environment": "deploy env"
}

Response

Status: 200

  • Headers:
    • Content-Type: application/json
  • Body:
{
  "message": "Updated"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
  "message": "Updated"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
  "message": "Updated"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
[
  {}
]

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
  "id": "project id"
  "message": "Deleted"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
[
  {}
]

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}

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:
{
  "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:
{
    "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:
{
  "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
{
  "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:
{

    "message" : "Updated"
}

Status: 422

  • Headers:
    • Content-Type: application/json
  • Body:
{
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{
}

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:
{
  "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:
{
  "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:
[
 "role"
]

Response

Status: 200

  • Headers:
    • Content-Type: application/json
  • Body:
{
  "message": "Updated"
}

Status: 404

  • Headers:
    • Content-Type: application/json
  • Body:
{}