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 |