metasploit-framework/documentation/api/v1/exploit_api_doc.rb

83 lines
2.2 KiB
Ruby

require 'swagger/blocks'
module ExploitApiDoc
include Swagger::Blocks
swagger_schema :Exploit do
key :required, [:id, :name]
property :id, type: :integer, format: :int32
property :created_at, type: :string, format: :date_time
property :updated_at, type: :string, format: :date_time
property :workspace_id, type: :integer, format: :int32
property :name, type: :string
property :critical, type: :boolean
property :seen, type: :string
property :username, type: :string
property :info do
key :type, :object
property :revision, type: :string
end
end
swagger_path '/api/v1/exploits' do
# Swagger documentation for /api/v1/exploits POST
operation :post do
key :description, 'Create an exploit entry.'
key :tags, [ 'exploit' ]
parameter do
key :in, :body
key :name, :body
key :description, 'The attributes to assign to the exploit.'
key :required, true
schema do
property :timestamp, type: :string, format: :date_time
property :module, type: :string
property :workspace, required: true, type: :string
property :port, type: :integer, format: :int32
property :proto, type: :string, enum: ['tcp','udp']
property :service, '$ref' => :Service
property :host, '$ref' => :Host
property :vuln, '$ref' => :Vuln
property :refs do
key :required, true
key :type, :array
items do
key :type, :string
end
end
property :exploit_report_attempt do
key :type, :string
key :enum, ['attempt', 'failure', 'success']
end
end
end
response 200 do
key :description, RootApiDoc::DEFAULT_RESPONSE_200
schema do
property :data do
key :'$ref', :Exploit
end
end
end
response 401 do
key :description, RootApiDoc::DEFAULT_RESPONSE_401
schema do
key :'$ref', :AuthErrorModel
end
end
response 500 do
key :description, RootApiDoc::DEFAULT_RESPONSE_500
schema do
key :'$ref', :ErrorModel
end
end
end
end
end