891 lines
25 KiB
Ruby
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
|