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

231 lines
6.0 KiB
Ruby

require 'swagger/blocks'
require_relative 'devops_error'
require_relative 'devops_response'
module Devops
module API3
module Docs
class ImageRoutes
include Swagger::Blocks
swagger_schema :ImageResponse do
allOf do
schema do
key :'$ref', :DevopsResponse
end
schema do
property :id do
key :type, :string
end
end
end
end
swagger_schema :ImageObject do
allOf do
schema do
key :'$ref', :ImageObjectInput
end
schema do
property :id do
key :type, :string
end
property :created_at do
key :type, :integer
key :format, :int64
end
end
end
end
swagger_schema :ImageObjectInput do
key :required, [:image_id, :name, :provider, :provider_account, :remote_user]
property :image_id do
key :type, :string
key :pattern, "^[a-z0-9_-]{0,99}$"
key :maxLength, 100
end
property :name do
key :type, :string
key :maxLength, 255
end
property :remote_user do
key :type, :string
key :pattern, "^[a-z_][a-z0-9_-]{0,30}$"
key :maxLength, 31
end
property :provider do
key :type, :string
end
property :provider_account do
key :type, :string
key :pattern, "^[a-z_][a-z0-9_-]{0,99}$"
key :maxLength, 100
end
end
swagger_path "/images" do
operation :get do
key :description, 'Get images list'
key :operationId, 'getImages'
key :tags, [
'image'
]
parameter do
key :name, :provider
key :in, :query
key :description, 'Provider name for filtering images'
key :required, false
schema do
key :type, :string
end
end
response 200 do
key :description, 'Images list'
schema do
key :type, :array
items do
key :'$ref', :ImageObject
end
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/image" do
operation :post do
key :description, 'Create new image'
key :operationId, 'createImage'
key :tags, [
'image'
]
parameter do
key :name, :image
key :in, :body
key :description, 'New image'
key :required, true
schema do
key :'$ref', :ImageObjectInput
end
end
response 201 do
key :description, 'Create image response'
schema do
key :'$ref', :ImageResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/image/(id)" do
operation :get do
key :description, 'Get image by id'
key :operationId, 'getImage'
key :tags, [
'image'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Image id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Image object'
schema do
key :'$ref', :ImageObject
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/image/(id)" do
operation :put do
key :description, 'Update image by id TODO'
key :operationId, 'updateImage'
key :tags, [
'image'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Image id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Devops response'
schema do
key :'$ref', :ImageResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
swagger_path "/image/(id)" do
operation :delete do
key :description, 'Delete image by id'
key :operationId, 'deleteImage'
key :tags, [
'image'
]
parameter do
key :name, :id
key :in, :path
key :description, 'Image id'
key :required, true
schema do
key :type, :string
end
end
response 200 do
key :description, 'Devops response'
schema do
key :'$ref', :ImageResponse
end
end
response :default do
key :description, 'error'
schema do
key :'$ref', :DevopsError
end
end
end
end
end
end
end
end