fluke/devops-service/app/api3/docs/server.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

891 lines
25 KiB
Ruby

require 'swagger/blocks'
require_relative 'devops_error'
require_relative 'devops_response'
module Devops
module API3
module Docs
class ServerRoutes
include Swagger::Blocks
swagger_schema :ServerIdObject do
property :id do
key :type, :string
end
end
swagger_schema :DevopsServerResponse do
allOf do
schema do
key :'$ref', :DevopsResponse
end
schema do
property :id do
key :type, :string
end
end
end
end
swagger_path "/servers" do
operation :get do
key :description, 'Get servers list'
key :operationId, 'getServers'
key :tags, [
'server'
]
response 200 do
key :description, 'Servers list'
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 "/servers/provider/{provider}/{account}" do
operation :get do
key :description, 'Get servers list by provider and provider account'
key :operationId, 'getServersByProviderAccount'
key :tags, [
'server'
]
parameter do
key :name, :provider
key :in, :path
key :description, 'Provider name'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :account
key :in, :path
key :description, 'Provider account id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Servers list'
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 "/server/id/{name}" do
operation :get do
key :description, 'Get server id by name'
key :operationId, 'getServerIdByName'
key :tags, [
'server'
]
parameter do
key :name, :name
key :in, :path
key :description, 'Server name'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server id'
schema do
key :'$ref', :ServerIdObject
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}" do
operation :get do
key :description, 'Get server by id'
key :operationId, 'getServerById'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server'
schema do
key :'$ref', :ServerObject
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}" do
operation :delete do
key :description, 'Delete server by id'
key :operationId, 'deleteServerById'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'List of jobs ids'
schema do
key :type, :array
items do
key :type, :string
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/servers/delete" do
operation :post do
key :description, 'Delete servers'
key :operationId, 'deleteServers'
key :tags, [
'server'
]
parameter do
key :name, :server_ids
key :in, :body
key :description, 'Array of servers ids'
key :required, true
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'List of jobs ids'
schema do
key :type, :array
items do
key :type, :string
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/servers/{id}/deploy" do
operation :post do
key :description, 'Deploy server'
key :operationId, 'deployServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :tags
key :in, :body
key :description, 'Chef tags to deploy with'
key :required, false
schema do
key :type, :array
items do
key :type, :string
end
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'Chef run_list to deploy with'
key :required, false
schema do
key :type, :array
items do
key :type, :string
end
end
end
parameter do
key :name, :build_number
key :in, :body
key :description, 'Build number to deploy'
key :required, false
schema do
key :type, :string
end
end
response 200 do
key :description, 'List of jobs ids'
schema do
key :type, :array
items do
key :type, :string
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server" do
operation :post do
key :description, 'Create server'
key :operationId, 'createServer'
key :tags, [
'server'
]
parameter do
key :name, :project
key :in, :body
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 id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :category
key :in, :body
key :description, 'Category id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :name
key :in, :body
key :description, 'Server name'
key :required, false
schema do
key :type, :string
end
end
parameter do
key :name, :cm_name
key :in, :body
key :description, 'Server name in configuration manager system'
key :required, false
schema do
key :type, :string
end
end
parameter do
key :name, :without_bootstrap
key :in, :body
key :description, 'Skip bootstrap phase'
key :required, false
schema do
key :type, :bool
end
end
parameter do
key :name, :skip_rollback
key :in, :body
key :description, 'Skip rollback on error'
key :required, false
schema do
key :type, :bool
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'Chef run_list to deploy with'
key :required, false
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'List of jobs ids'
schema do
key :type, :array
items do
key :type, :string
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/pause" do
operation :post do
key :description, 'Pause server'
key :operationId, 'pauseServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/unpause" do
operation :post do
key :description, 'Unpause server'
key :operationId, 'unpauseServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/reserve" do
operation :post do
key :description, 'Reserve server'
key :operationId, 'reserveServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/unreserve" do
operation :post do
key :description, 'Unreserve server'
key :operationId, 'unreserveServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/bootstrap" do
operation :post do
key :description, 'Bootstrap server'
key :operationId, 'bootstrapServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'Chef run_list to deploy with'
key :required, false
schema do
key :type, :array
items do
key :type, :string
end
end
end
parameter do
key :name, :bootstrap_template
key :in, :body
key :description, 'Owerride bootstrap_template parameter'
key :required, false
schema do
key :type, :string
end
end
parameter do
key :name, :cm_name
key :in, :body
key :description, 'Server name in configuration manager system'
key :required, false
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/unbootstrap" do
operation :post do
key :description, 'Unbootstrap server'
key :operationId, 'unbootstrapServer'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/add" do
operation :post do
key :description, 'Add static server'
key :operationId, 'addServer'
key :tags, [
'server'
]
parameter do
key :name, :project
key :in, :body
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 id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :category
key :in, :body
key :description, 'Category id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :private_ip
key :in, :body
key :description, 'Server private ip to connect to'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :key
key :in, :body
key :description, 'Key id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :remote_user
key :in, :body
key :description, 'Remote user for server to connect to'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :name
key :in, :body
key :description, 'Server name'
key :required, false
schema do
key :type, :string
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'Chef run_list to deploy with'
key :required, false
schema do
key :type, :array
items do
key :type, :string
end
end
end
parameter do
key :name, :public_ip
key :in, :body
key :description, 'Server public ip to connect to'
key :required, false
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response 409 do
key :description, 'Conflict error, server in invalid state, operation can not be done'
schema do
key :'$ref', :DevopsError
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/tags/add" do
operation :post do
key :description, 'Add tags to provider server'
key :operationId, 'addServerTags'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :tags
key :in, :body
key :description, 'Key-value object with tags'
key :required, false
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/tags/delete" do
operation :post do
key :description, 'Delete tags from provider server'
key :operationId, 'deleteServerTags'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :tags
key :in, :body
key :description, 'Key-value object with tags'
key :required, false
schema do
key :type, :string
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/server/{id}/run_list" do
operation :post do
key :description, 'Set server run_list'
key :operationId, 'setServerRunList'
key :tags, [
'server'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Server id'
key :required, true
schema do
key :type, :string
end
end
parameter do
key :name, :run_list
key :in, :body
key :description, 'New server run_list'
key :required, false
schema do
key :type, :array
items do
key :type, :string
end
end
end
response 200 do
key :description, 'Server response'
schema do
key :'$ref', :DevopsServerResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
end
end
end
end