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

140 lines
3.5 KiB
Ruby

require 'swagger/blocks'
require_relative 'devops_error'
require_relative 'devops_response'
module Devops
module API3
module Docs
class KeyRoutes
include Swagger::Blocks
swagger_schema :KeyObject do
property :id do
key :type, :string
end
property :filename do
key :type, :string
end
property :created_at do
key :type, :integer
key :format, :int64
end
end
swagger_schema :KeyObjectInput do
key :required, [:file_name, :key_name, :content]
property :file_name do
key :type, :string
key :pattern, "^[a-z0-9_-]{0,99}$"
key :maxLength, 100
end
property :key_name do
key :type, :string
key :pattern, "^[a-z0-9_-]{0,99}$"
key :maxLength, 100
end
property :content do
key :type, :string
end
end
swagger_path "/keys" do
operation :get do
key :description, 'Get keys list'
key :operationId, 'getKeys'
key :tags, [
'key'
]
response 200 do
key :description, 'Keys list'
schema do
key :type, :array
items do
key :'$ref', :KeyObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/key" do
operation :post do
key :description, 'Create new key'
key :operationId, 'createKey'
key :tags, [
'key'
]
parameter do
key :name, :key
key :in, :body
key :description, 'New key object'
key :required, true
schema do
key :'$ref', :KeyObjectInput
end
end
response 201 do
key :description, 'Devops response'
schema do
key :type, :array
items do
key :'$ref', :DevopsResponse
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/key/{id}" do
operation :delete do
key :description, 'Delete key by id'
key :operationId, 'deleteKey'
key :tags, [
'key'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Key id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Devops response'
schema do
key :type, :array
items do
key :'$ref', :DevopsResponse
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
end
end
end
end