fluke/devops-service/app/api3/docs/project.rb

1324 lines
36 KiB
Ruby
Raw Normal View History

2018-04-04 22:44:39 +03:00
require 'swagger/blocks'
require_relative 'devops_error'
require_relative 'devops_response'
require_relative 'server_model'
module Devops
module API3
module Docs
class ProjectRoutes
include Swagger::Blocks
swagger_schema :ProjectResponse do
allOf do
schema do
key :'$ref', :DevopsResponse
end
schema do
property :id do
key :type, :string
end
end
end
end
swagger_schema :CreateCategoryResponse do
allOf do
schema do
key :'$ref', :DevopsResponse
end
schema do
property :category do
key :'$ref', :CategoryObject
end
end
end
end
swagger_schema :CreateEnvironmentResponse do
allOf do
schema do
key :'$ref', :DevopsResponse
end
schema do
property :environment do
key :'$ref', :CreateEnvironmentObject
end
end
end
end
swagger_schema :ProjectCreate do
property :id do
key :type, :string
key :maxLength, 100
end
property :description do
key :type, :string
key :maxLength, 500
end
property :run_list do
key :type, :array
items do
key :type, :string
end
end
end
swagger_schema :CreateEnvironmentObject do
property :id do
key :type, :string
key :maxLength, 100
end
property :expires do
key :type, :string
end
property :run_list do
key :type, :array
items do
key :type, :string
end
end
property :users do
key :type, :array
items do
key :type, :string
end
end
end
swagger_schema :ServerLastOperationObject do
property :type do
key :type, :string
end
property :date do
key :type, :int64
end
property :user do
key :type, :string
end
end
swagger_schema :EnvUsersResponse do
allOf do
schema do
key :'$ref', :ProjectResponse
end
schema do
property :users do
key :type, :array
items do
key :type, :string
end
end
end
end
end
swagger_schema :ProjectUsersResponse do
allOf do
schema do
key :'$ref', :ProjectResponse
end
schema do
property :project_users do
key :type, :array
items do
key :type, :string
end
end
end
end
end
swagger_schema :ProjectRunListResponse do
allOf do
schema do
key :'$ref', :ProjectResponse
end
schema do
property :run_list do
key :type, :array
items do
key :type, :string
end
end
end
end
end
swagger_schema :CategoryProviderObject do
property :name do
key :type, :string
end
property :account do
key :type, :string
end
property :flavor do
key :type, :string
end
property :image do
key :type, :string
end
property :subnet do
key :type, :string
end
property :vpc_id do
key :type, :string
end
property :security_group do
key :type, :array
items do
key :type, :string
end
end
property :stack_template do
key :type, :string
end
end
swagger_schema :CategoryCmToolObject do
property :name do
key :type, :string
end
property :bootstrap_template do
key :type, :string
end
end
swagger_schema :CategoryObject do
property :id do
key :type, :string
key :maxLength, 100
end
property :provider do
key :'$ref', :CategoryProviderObject
end
property :cm_tool do
key :'$ref', :CategoryCmToolObject
end
end
swagger_schema :EnvironmentObject do
property :id do
key :type, :string
key :maxLength, 100
end
property :expires do
key :type, :string
end
property :run_list do
key :type, :array
items do
key :type, :string
end
end
property :users do
key :type, :array
items do
key :type, :string
end
end
property :categories do
key :type, :array
items do
key :'$ref', :CategoryObject
end
end
end
swagger_schema :ProjectShowObject do
allOf do
schema do
key :'$ref', :ProjectListObject
end
schema do
property :archived do
key :type, :boolean
end
property :environments do
key :type, :array
items do
key :'$ref', :EnvironmentObject
end
end
end
end
end
swagger_schema :ProjectUpdateObject do
property :description do
key :type, :string
key :maxLength, 500
end
property :run_list do
key :type, :array
items do
key :type, :string
end
end
property :project_users do
key :type, :array
items do
key :type, :string
end
end
end
swagger_schema :ProjectListObject do
allOf do
schema do
key :'$ref', :ProjectUpdateObject
end
schema do
property :id do
key :type, :string
key :maxLength, 100
end
property :owner do
key :type, :string
end
property :created_at do
key :type, :integer
key :format, :int64
end
end
end
end
swagger_schema :ProjectObjectInput do
key :required, [:image_id, :name, :provider, :provider_account, :remote_user]
property :image_id do
key :type, :string
key :pattern, "^[a-z0-9_-]{0,99}$"
key :maxLength, 100
end
property :name do
key :type, :string
key :maxLength, 255
end
property :remote_user do
key :type, :string
key :pattern, "^[a-z_][a-z0-9_-]{0,30}$"
key :maxLength, 31
end
property :provider do
key :type, :string
end
property :provider_account do
key :type, :string
key :pattern, "^[a-z_][a-z0-9_-]{0,99}$"
key :maxLength, 100
end
end
swagger_path "/projects" do
operation :get do
key :description, 'Get projects list'
key :operationId, 'getProjects'
key :tags, [
'project'
]
response 200 do
key :description, 'Projects list'
schema do
key :type, :array
items do
key :'$ref', :ProjectListObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}" do
operation :get do
key :description, 'Get project by id'
key :operationId, 'getProjectById'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Project object'
schema do
key :'$ref', :ProjectShowObject
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}" do
operation :put do
key :description, 'Update project by id'
key :operationId, 'updateProjectById'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :project
key :in, :body
key :description, 'Project parameters to rewrite'
key :required, true
schema do
key :'$ref', :ProjectUpdateObject
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}" do
operation :delete do
key :description, 'Delete project by id'
key :operationId, 'deleteProjectById'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project" do
operation :post do
key :description, 'Create project'
key :operationId, 'createProject'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :body
key :description, 'New project body'
key :required, true
schema do
key :'$ref', :ProjectCreate
end
end
response 201 do
key :description, 'Create project response'
schema do
key :'$ref', :ProjectResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}/users/add" do
operation :post do
key :description, 'Add users to project'
key :operationId, 'addUsersToProject'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :users
key :in, :body
key :description, 'Add users to project list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Project users response'
schema do
key :'$ref', :ProjectUsersResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}/users/delete" do
operation :post do
key :description, 'Delete users from project'
key :operationId, 'deleteUsersFromProject'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :users
key :in, :body
key :description, 'Delete users from project list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectUsersResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}/run_list" do
operation :put do
key :description, 'Set new run_list elements to project'
key :operationId, 'setRunListToProject'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'run_list elements to set to project list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectRunListResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}/run_list/add" do
operation :post do
key :description, 'Add new run_list elements to project'
key :operationId, 'addRunListToProject'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'run_list elements to add to project list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectRunListResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{id}/run_list/delete" do
operation :post do
key :description, 'Delete run_list elements from project'
key :operationId, 'deleteRunListFromProject'
key :tags, [
'project'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :users
key :in, :body
key :description, 'run_list elements to delete from project list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectRunListResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/archive" do
operation :post do
key :description, 'Archive project'
key :operationId, 'archiveProject'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/unarchive" do
operation :post do
key :description, 'Unarchive project'
key :operationId, 'unarchiveProject'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Project response'
schema do
key :'$ref', :ProjectResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/users/add" do
operation :post do
key :description, 'Add users to environment'
key :operationId, 'addUsersToEnvironment'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :users
key :in, :body
key :description, 'Users list to add to environment list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Environment users response'
schema do
key :'$ref', :EnvUsersResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/users/delete" do
operation :post do
key :description, 'Delete users from environment'
key :operationId, 'deleteUsersFromEnvironment'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :users
key :in, :body
key :description, 'Users list to delete from environment list'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Environment users response'
schema do
key :'$ref', :EnvUsersResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/servers" do
operation :get do
key :description, 'Show project servers'
key :operationId, 'showProjectServers'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Project servers response'
schema do
key :type, :array
items do
key :'$ref', :ServerObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/servers" do
operation :get do
key :description, 'Show environment servers'
key :operationId, 'showEnvironmentServers'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Environment servers response'
schema do
key :type, :array
items do
key :'$ref', :ServerObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/stacks" do
operation :get do
key :description, 'Show environment stacks'
key :operationId, 'showEnvironmentStacks'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Environment stacks response'
schema do
key :type, :array
items do
key :'$ref', :StackObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environments" do
operation :get do
key :description, 'Get project environments'
key :operationId, 'getProjectEnvironments'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Environments list'
schema do
key :type, :array
items do
key :'$ref', :EnvironmentObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment" do
operation :post do
key :description, 'Create project environment'
key :operationId, 'createProjectEnvironment'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :environment
key :in, :body
key :description, 'Environment object'
key :required, true
schema do
key :'$ref', :CreateEnvironmentObject
end
end
response 200 do
key :description, 'Create environment response'
schema do
key :'$ref', :CreateEnvironmentResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}" do
operation :get do
key :description, 'Show project environment'
key :operationId, 'showProjectEnvironment'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Environment object'
schema do
key :'$ref', :EnvironmentObject
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}" do
operation :delete do
key :description, 'Delete project environment'
key :operationId, 'deleteProjectEnvironment'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Delete environment response'
schema do
key :'$ref', :CreateEnvironmentResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/categories" do
operation :get do
key :description, 'Get environment categories'
key :operationId, 'getEnvironmentCategories'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Categories list'
schema do
key :type, :array
items do
key :'$ref', :CategoryObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/category/{category}" do
operation :get do
key :description, 'Get category by id'
key :operationId, 'getCategoryById'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :category
key :in, :path
key :description, 'Category id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Category'
schema do
key :'$ref', :CategoryObject
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/category" do
operation :post do
key :description, 'Create new category'
key :operationId, 'createCategory'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :category
key :in, :body
key :description, 'Category object'
key :required, true
schema do
key :'$ref', :CategoryObject
end
end
response 200 do
key :description, 'Create category response'
schema do
key :'$ref', :CreateCategoryResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/project/{project}/environment/{env}/category/{category}" do
operation :delete do
key :description, 'Delete category by id'
key :operationId, 'deleteCategoryById'
key :tags, [
'project'
]
parameter do
key :name, :project
key :in, :path
key :description, 'Project id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :env
key :in, :path
key :description, 'Environment id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :category
key :in, :path
key :description, 'Category id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Delete category response'
schema do
key :'$ref', :CreateCategoryResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
end
end
end
end