110 lines
3.1 KiB
Ruby
110 lines
3.1 KiB
Ruby
|
|
require 'swagger/blocks'
|
||
|
|
require_relative "request_handler"
|
||
|
|
|
||
|
|
require 'app/api3/docs/devops_error'
|
||
|
|
require 'app/api3/docs/devops_response'
|
||
|
|
require 'app/api3/docs/server_model'
|
||
|
|
require 'app/api3/docs/provider'
|
||
|
|
require 'app/api3/docs/job_task'
|
||
|
|
require 'app/api3/docs/chef'
|
||
|
|
require 'app/api3/docs/filter'
|
||
|
|
require 'app/api3/docs/image'
|
||
|
|
require 'app/api3/docs/key'
|
||
|
|
require 'app/api3/docs/role'
|
||
|
|
require 'app/api3/docs/user'
|
||
|
|
require 'app/api3/docs/project'
|
||
|
|
require 'app/api3/docs/server'
|
||
|
|
|
||
|
|
module Devops
|
||
|
|
module API3
|
||
|
|
module Handler
|
||
|
|
class ApiDocs < RequestHandler
|
||
|
|
|
||
|
|
include Swagger::Blocks
|
||
|
|
|
||
|
|
swagger_root do
|
||
|
|
key :swagger, '2.0'
|
||
|
|
info do
|
||
|
|
key :version, '3.0'
|
||
|
|
key :title, 'Devops API'
|
||
|
|
key :description, 'Devops API v3 specification'
|
||
|
|
license do
|
||
|
|
key :name, 'MIT'
|
||
|
|
key :url, 'https://opensource.org/licenses/MIT'
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
tag do
|
||
|
|
key :name, 'provider'
|
||
|
|
key :description, 'Providers operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'task'
|
||
|
|
key :description, 'Job tasks operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'chef'
|
||
|
|
key :description, 'Chef operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'filter'
|
||
|
|
key :description, 'Filter operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'image'
|
||
|
|
key :description, 'Image operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'key'
|
||
|
|
key :description, 'SSH keys operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'role'
|
||
|
|
key :description, 'User roles operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'user'
|
||
|
|
key :description, 'Users operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'project'
|
||
|
|
key :description, 'Projects operations'
|
||
|
|
end
|
||
|
|
tag do
|
||
|
|
key :name, 'server'
|
||
|
|
key :description, 'Servers operations'
|
||
|
|
end
|
||
|
|
# key :host, 'petstore.swagger.wordnik.com'
|
||
|
|
key :basePath, DevopsConfig.config[:url_prefix] + '/v3'
|
||
|
|
key :scheme, 'http'
|
||
|
|
key :consumes, ['application/json']
|
||
|
|
key :produces, ['application/json']
|
||
|
|
end
|
||
|
|
|
||
|
|
# A list of all classes that have swagger_* declarations.
|
||
|
|
SWAGGERED_CLASSES = [
|
||
|
|
Devops::API3::Docs::ProviderRoutes,
|
||
|
|
Devops::API3::Docs::JobTaskRoutes,
|
||
|
|
Devops::API3::Docs::ChefRoutes,
|
||
|
|
Devops::API3::Docs::FilterRoutes,
|
||
|
|
Devops::API3::Docs::ImageRoutes,
|
||
|
|
Devops::API3::Docs::KeyRoutes,
|
||
|
|
Devops::API3::Docs::RolesRoutes,
|
||
|
|
Devops::API3::Docs::UserRoutes,
|
||
|
|
Devops::API3::Docs::ProjectRoutes,
|
||
|
|
Devops::API3::Docs::ServerRoutes,
|
||
|
|
Devops::API3::Docs::DevopsError,
|
||
|
|
Devops::API3::Docs::DevopsResponse,
|
||
|
|
Devops::API3::Docs::ServerModel,
|
||
|
|
self
|
||
|
|
].freeze
|
||
|
|
|
||
|
|
def index
|
||
|
|
Swagger::Blocks.build_root_json(SWAGGERED_CLASSES)
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|