1324 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			1324 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require 'swagger/blocks' | ||
|  | 
 | ||
|  | require_relative 'devops_error' | ||
|  | require_relative 'devops_response' | ||
|  | require_relative 'server_model' | ||
|  | 
 | ||
|  | module Devops | ||
|  |   module API3 | ||
|  |     module Docs | ||
|  |       class ProjectRoutes | ||
|  | 
 | ||
|  |         include Swagger::Blocks | ||
|  | 
 | ||
|  |         swagger_schema :ProjectResponse do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :DevopsResponse | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :id do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :CreateCategoryResponse do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :DevopsResponse | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :category do | ||
|  |                 key :'$ref', :CategoryObject | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :CreateEnvironmentResponse do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :DevopsResponse | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :environment do | ||
|  |                 key :'$ref', :CreateEnvironmentObject | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectCreate do | ||
|  |           property :id do | ||
|  |             key :type, :string | ||
|  |             key :maxLength, 100
 | ||
|  |           end | ||
|  |           property :description do | ||
|  |             key :type, :string | ||
|  |             key :maxLength, 500
 | ||
|  |           end | ||
|  |           property :run_list do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :CreateEnvironmentObject do | ||
|  |           property :id do | ||
|  |             key :type, :string | ||
|  |             key :maxLength, 100
 | ||
|  |           end | ||
|  |           property :expires do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :run_list do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |           property :users do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ServerLastOperationObject do | ||
|  |           property :type do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :date do | ||
|  |             key :type, :int64 | ||
|  |           end | ||
|  |           property :user do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :EnvUsersResponse do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :ProjectResponse | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :users do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectUsersResponse do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :ProjectResponse | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :project_users do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectRunListResponse do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :ProjectResponse | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :run_list do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :CategoryProviderObject do | ||
|  |           property :name do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :account do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :flavor do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :image do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :subnet do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :vpc_id do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :security_group do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |           property :stack_template do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :CategoryCmToolObject do | ||
|  |           property :name do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :bootstrap_template do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :CategoryObject do | ||
|  |           property :id do | ||
|  |             key :type, :string | ||
|  |             key :maxLength, 100
 | ||
|  |           end | ||
|  |           property :provider do | ||
|  |             key :'$ref', :CategoryProviderObject | ||
|  |           end | ||
|  |           property :cm_tool do | ||
|  |             key :'$ref', :CategoryCmToolObject | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :EnvironmentObject do | ||
|  |           property :id do | ||
|  |             key :type, :string | ||
|  |             key :maxLength, 100
 | ||
|  |           end | ||
|  |           property :expires do | ||
|  |             key :type, :string | ||
|  |           end | ||
|  |           property :run_list do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |           property :users do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |           property :categories do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :'$ref', :CategoryObject | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectShowObject do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :ProjectListObject | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :archived do | ||
|  |                 key :type, :boolean | ||
|  |               end | ||
|  |               property :environments do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :EnvironmentObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectUpdateObject do | ||
|  |           property :description do | ||
|  |             key :type, :string | ||
|  |             key :maxLength, 500
 | ||
|  |           end | ||
|  |           property :run_list do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |           property :project_users do | ||
|  |             key :type, :array | ||
|  |             items do | ||
|  |               key :type, :string | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectListObject do | ||
|  |           allOf do | ||
|  |             schema do | ||
|  |               key :'$ref', :ProjectUpdateObject | ||
|  |             end | ||
|  |             schema do | ||
|  |               property :id do | ||
|  |                 key :type, :string | ||
|  |                 key :maxLength, 100
 | ||
|  |               end | ||
|  |               property :owner do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |               property :created_at do | ||
|  |                 key :type, :integer | ||
|  |                 key :format, :int64 | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_schema :ProjectObjectInput 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 "/projects" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Get projects list' | ||
|  |             key :operationId, 'getProjects' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             response 200 do | ||
|  |               key :description, 'Projects list' | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :ProjectListObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Get project by id' | ||
|  |             key :operationId, 'getProjectById' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project object' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectShowObject | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}" do | ||
|  |           operation :put do | ||
|  |             key :description, 'Update project by id' | ||
|  |             key :operationId, 'updateProjectById' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :body | ||
|  |               key :description, 'Project parameters to rewrite' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectUpdateObject | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}" do | ||
|  |           operation :delete do | ||
|  |             key :description, 'Delete project by id' | ||
|  |             key :operationId, 'deleteProjectById' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Create project' | ||
|  |             key :operationId, 'createProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :body | ||
|  |               key :description, 'New project body' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectCreate | ||
|  |               end | ||
|  |             end | ||
|  |             response 201 do | ||
|  |               key :description, 'Create project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}/users/add" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Add users to project' | ||
|  |             key :operationId, 'addUsersToProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :users | ||
|  |               key :in, :body | ||
|  |               key :description, 'Add users to project list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project users response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectUsersResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}/users/delete" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Delete users from project' | ||
|  |             key :operationId, 'deleteUsersFromProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :users | ||
|  |               key :in, :body | ||
|  |               key :description, 'Delete users from project list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectUsersResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}/run_list" do | ||
|  |           operation :put do | ||
|  |             key :description, 'Set new run_list elements to project' | ||
|  |             key :operationId, 'setRunListToProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :run_list | ||
|  |               key :in, :body | ||
|  |               key :description, 'run_list elements to set to project list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectRunListResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}/run_list/add" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Add new run_list elements to project' | ||
|  |             key :operationId, 'addRunListToProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :run_list | ||
|  |               key :in, :body | ||
|  |               key :description, 'run_list elements to add to project list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectRunListResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{id}/run_list/delete" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Delete run_list elements from project' | ||
|  |             key :operationId, 'deleteRunListFromProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :id | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :users | ||
|  |               key :in, :body | ||
|  |               key :description, 'run_list elements to delete from project list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectRunListResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/archive" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Archive project' | ||
|  |             key :operationId, 'archiveProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/unarchive" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Unarchive project' | ||
|  |             key :operationId, 'unarchiveProject' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :ProjectResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/users/add" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Add users to environment' | ||
|  |             key :operationId, 'addUsersToEnvironment' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :users | ||
|  |               key :in, :body | ||
|  |               key :description, 'Users list to add to environment list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Environment users response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :EnvUsersResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/users/delete" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Delete users from environment' | ||
|  |             key :operationId, 'deleteUsersFromEnvironment' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :users | ||
|  |               key :in, :body | ||
|  |               key :description, 'Users list to delete from environment list' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :type, :string | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Environment users response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :EnvUsersResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/servers" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Show project servers' | ||
|  |             key :operationId, 'showProjectServers' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Project servers response' | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :ServerObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/servers" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Show environment servers' | ||
|  |             key :operationId, 'showEnvironmentServers' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Environment servers response' | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :ServerObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/stacks" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Show environment stacks' | ||
|  |             key :operationId, 'showEnvironmentStacks' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Environment stacks response' | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :StackObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environments" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Get project environments' | ||
|  |             key :operationId, 'getProjectEnvironments' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Environments list' | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :EnvironmentObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Create project environment' | ||
|  |             key :operationId, 'createProjectEnvironment' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :environment | ||
|  |               key :in, :body | ||
|  |               key :description, 'Environment object' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :'$ref', :CreateEnvironmentObject | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Create environment response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :CreateEnvironmentResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Show project environment' | ||
|  |             key :operationId, 'showProjectEnvironment' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Environment object' | ||
|  |               schema do | ||
|  |                 key :'$ref', :EnvironmentObject | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}" do | ||
|  |           operation :delete do | ||
|  |             key :description, 'Delete project environment' | ||
|  |             key :operationId, 'deleteProjectEnvironment' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Delete environment response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :CreateEnvironmentResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/categories" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Get environment categories' | ||
|  |             key :operationId, 'getEnvironmentCategories' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Categories list' | ||
|  |               schema do | ||
|  |                 key :type, :array | ||
|  |                 items do | ||
|  |                   key :'$ref', :CategoryObject | ||
|  |                 end | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/category/{category}" do | ||
|  |           operation :get do | ||
|  |             key :description, 'Get category by id' | ||
|  |             key :operationId, 'getCategoryById' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :category | ||
|  |               key :in, :path | ||
|  |               key :description, 'Category id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Category' | ||
|  |               schema do | ||
|  |                 key :'$ref', :CategoryObject | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/category" do | ||
|  |           operation :post do | ||
|  |             key :description, 'Create new category' | ||
|  |             key :operationId, 'createCategory' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :category | ||
|  |               key :in, :body | ||
|  |               key :description, 'Category object' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :'$ref', :CategoryObject | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Create category response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :CreateCategoryResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |         swagger_path "/project/{project}/environment/{env}/category/{category}" do | ||
|  |           operation :delete do | ||
|  |             key :description, 'Delete category by id' | ||
|  |             key :operationId, 'deleteCategoryById' | ||
|  |             key :tags, [ | ||
|  |               'project' | ||
|  |             ] | ||
|  |             parameter do | ||
|  |               key :name, :project | ||
|  |               key :in, :path | ||
|  |               key :description, 'Project id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :env | ||
|  |               key :in, :path | ||
|  |               key :description, 'Environment id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             parameter do | ||
|  |               key :name, :category | ||
|  |               key :in, :path | ||
|  |               key :description, 'Category id' | ||
|  |               key :required, true | ||
|  |               schema do | ||
|  |                 key :type, :string | ||
|  |               end | ||
|  |             end | ||
|  |             response 200 do | ||
|  |               key :description, 'Delete category response' | ||
|  |               schema do | ||
|  |                 key :'$ref', :CreateCategoryResponse | ||
|  |               end | ||
|  |             end | ||
|  |             response :default do | ||
|  |               key :description, 'error' | ||
|  |               schema do | ||
|  |                 key :'$ref', :DevopsError | ||
|  |               end | ||
|  |             end | ||
|  |           end | ||
|  |         end | ||
|  | 
 | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |