231 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			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 |