# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: dtm.proto

require 'google/protobuf'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_message "contrast.api.dtm.Message" do
    optional :client_id, :string, 1
    optional :client_number, :int32, 2
    optional :client_total, :int32, 3
    optional :pid, :int64, 8
    optional :ppid, :int64, 9
    optional :message_count, :int32, 4
    optional :timestamp_ms, :int64, 5
    optional :app_name, :string, 6
    optional :app_language, :string, 7
    optional :app_path, :string, 28
    oneof :event do
      optional :agent_startup, :message, 11, "contrast.api.dtm.AgentStartup"
      optional :application_create, :message, 12, "contrast.api.dtm.ApplicationCreate"
      optional :server_activity, :message, 10, "contrast.api.dtm.ServerActivity"
      optional :application_update, :message, 13, "contrast.api.dtm.ApplicationUpdate"
      optional :activity, :message, 14, "contrast.api.dtm.Activity"
      optional :observed_route, :message, 26, "contrast.api.dtm.ObservedRoute"
      optional :request, :message, 19, "contrast.api.dtm.RawRequest"
      optional :prefilter, :message, 20, "contrast.api.dtm.HttpRequest"
      optional :postfilter, :message, 22, "contrast.api.dtm.HttpResponse"
      optional :response, :message, 23, "contrast.api.dtm.RawResponse"
      optional :sqli_sink, :message, 25, "contrast.api.dtm.SqliSinkRequest"
      optional :poll, :message, 27, "contrast.api.dtm.Poll"
      optional :noop, :message, 24, "contrast.api.dtm.Noop"
    end
  end
  add_message "contrast.api.dtm.Poll" do
  end
  add_message "contrast.api.dtm.Noop" do
    optional :flag, :int32, 1
  end
  add_message "contrast.api.dtm.ServerActivity" do
    map :log_enhancers, :string, :int32, 16
    map :ip_blacklists, :string, :int32, 17
  end
  add_message "contrast.api.dtm.AgentStartup" do
    optional :version, :string, 2
    optional :environment, :string, 3
    optional :tags, :string, 4
    optional :server_name, :string, 5
    optional :server_path, :string, 6
    optional :server_type, :string, 7
    optional :server_version, :string, 8
    optional :heartbeat_ms, :int32, 9
  end
  add_message "contrast.api.dtm.ApplicationCreate" do
    optional :group, :string, 1
    optional :app_version, :string, 2
    optional :tags, :string, 3
    optional :code, :string, 4
    optional :metadata, :string, 5
    optional :session_id, :string, 6
    optional :session_metadata, :string, 7
  end
  add_message "contrast.api.dtm.ApplicationUpdate" do
    optional :coverage_loc, :int32, 2
    optional :platform, :message, 4, "contrast.api.dtm.Platform"
    optional :view, :message, 5, "contrast.api.dtm.View"
    map :technologies, :string, :bool, 6
    repeated :components, :message, 7, "contrast.api.dtm.ArchitectureComponent"
    map :libraries, :string, :message, 8, "contrast.api.dtm.Library"
    repeated :routes, :message, 9, "contrast.api.dtm.RouteCoverage"
  end
  add_message "contrast.api.dtm.Activity" do
    optional :http_request, :message, 1, "contrast.api.dtm.HttpRequest"
    optional :http_response, :message, 2, "contrast.api.dtm.HttpResponse"
    optional :duration_ms, :int64, 3
    optional :query_count, :int32, 5
    map :technologies, :string, :bool, 7
    map :library_usages, :string, :message, 8, "contrast.api.dtm.LibraryUsageUpdate"
    repeated :architectures, :message, 9, "contrast.api.dtm.ArchitectureComponent"
    repeated :results, :message, 12, "contrast.api.dtm.AttackResult"
    repeated :findings, :message, 15, "contrast.api.dtm.Finding"
    repeated :controls, :message, 16, "contrast.api.dtm.PossibleSecurityControl"
    optional :finding_tags, :string, 17
    map :dynamic_sources, :string, :message, 18, "contrast.api.dtm.DynamicSource"
    repeated :routes, :message, 19, "contrast.api.dtm.RouteCoverage"
  end
  add_message "contrast.api.dtm.Finding" do
    optional :hash_code, :string, 1
    optional :platform, :string, 2
    optional :rule_id, :string, 3
    optional :evidence, :string, 4
    map :properties, :string, :string, 6
    repeated :events, :message, 7, "contrast.api.dtm.TraceEvent"
    optional :preflight, :string, 8
    optional :tags, :string, 9
    optional :version, :int64, 10
    repeated :routes, :message, 11, "contrast.api.dtm.RouteCoverage"
    optional :session_id, :string, 12
  end
  add_message "contrast.api.dtm.DynamicSource" do
    optional :class_name, :string, 1
    optional :method_name, :string, 2
    optional :instance_method, :bool, 3
    optional :target, :string, 4
    repeated :events, :message, 5, "contrast.api.dtm.TraceEvent"
    map :properties, :string, :string, 6
  end
  add_message "contrast.api.dtm.PossibleSecurityControl" do
    optional :api, :string, 1
    optional :type, :string, 2
    optional :traits, :int64, 3
  end
  add_message "contrast.api.dtm.View" do
    optional :accessible, :int32, 1
    optional :total_view_fields, :int32, 2
    optional :line_count, :int32, 3
  end
  add_message "contrast.api.dtm.Platform" do
    optional :major, :string, 1
    optional :minor, :string, 2
    optional :build, :string, 3
    optional :service_pack, :string, 4
    repeated :updates, :string, 5
  end
  add_message "contrast.api.dtm.ArchitectureComponent" do
    optional :type, :string, 1
    optional :vendor, :string, 2
    optional :url, :string, 3
    optional :remote_host, :string, 4
    optional :remote_port, :int32, 5
  end
  add_message "contrast.api.dtm.Library" do
    optional :hash_code, :string, 1
    optional :file_path, :string, 2
    optional :url, :string, 3
    optional :version, :string, 4
    optional :tloc, :int32, 5
    optional :class_count, :int32, 6
    optional :used_class_count, :int32, 7
    optional :internal_ms, :int64, 8
    optional :external_ms, :int64, 9
    optional :manifest, :string, 10
    optional :tags, :string, 11
  end
  add_message "contrast.api.dtm.LibraryUsageUpdate" do
    optional :count, :int32, 1
    optional :hash_code, :string, 2
    map :class_names, :string, :bool, 3
  end
  add_message "contrast.api.dtm.Address" do
    optional :ip, :string, 1
    optional :host, :string, 2
    optional :port, :int32, 3
  end
  add_message "contrast.api.dtm.RawRequest" do
    optional :uuid, :string, 1
    optional :timestamp_ms, :int64, 2
    optional :request_line, :string, 4
    optional :normalized_uri, :string, 5
    optional :client_ip, :string, 6
    optional :client_ip_version, :int32, 7
    optional :client_port, :int32, 8
    optional :server_ip, :string, 10
    optional :server_ip_version, :int32, 11
    optional :server_port, :int32, 12
    repeated :request_headers, :message, 14, "contrast.api.dtm.SimplePair"
    repeated :multipart_headers, :message, 17, "contrast.api.dtm.SimplePair"
    optional :request_body, :bytes, 16
  end
  add_message "contrast.api.dtm.RawResponse" do
    optional :uuid, :string, 1
    optional :timestamp_ms, :int64, 2
    optional :response_code, :int32, 3
    repeated :response_headers, :message, 14, "contrast.api.dtm.SimplePair"
    optional :response_body, :bytes, 16
  end
  add_message "contrast.api.dtm.HttpRequest" do
    optional :uuid, :string, 1
    optional :timestamp_ms, :int64, 2
    optional :sender, :message, 3, "contrast.api.dtm.Address"
    optional :receiver, :message, 4, "contrast.api.dtm.Address"
    optional :protocol, :string, 5
    optional :version, :string, 6
    optional :method, :string, 7
    optional :raw, :string, 8
    optional :parsed_connection, :bool, 9
    optional :uri, :string, 10
    optional :normalized_uri, :string, 11
    optional :context, :string, 12
    optional :path, :string, 13
    optional :query_string, :string, 14
    map :normalized_request_params, :string, :message, 16, "contrast.api.dtm.Pair"
    repeated :multipart_headers, :message, 51, "contrast.api.dtm.SimplePair"
    map :request_headers, :string, :string, 20
    optional :parsed_request_headers, :bool, 21
    map :normalized_request_headers, :string, :message, 22, "contrast.api.dtm.Pair"
    map :normalized_cookies, :string, :message, 23, "contrast.api.dtm.Pair"
    optional :request_body, :string, 30
    optional :parsed_request_body, :bool, 31
    optional :document_type, :enum, 32, "contrast.api.dtm.HttpRequest.DocumentType"
    optional :request_body_binary, :bytes, 33
    optional :authentication, :enum, 40, "contrast.api.dtm.HttpRequest.Authentication"
    optional :principal, :string, 41
    optional :server_info, :string, 50
  end
  add_enum "contrast.api.dtm.HttpRequest.Authentication" do
    value :UNAUTHENTICATED, 0
    value :AUTHENTICATED, 1
    value :LOGIN_FAIL, 2
    value :LOGIN_SUCCESS, 3
    value :LOGIN_UNKNOWN, 4
  end
  add_enum "contrast.api.dtm.HttpRequest.DocumentType" do
    value :NORMAL, 0
    value :JSON, 1
    value :XML, 2
  end
  add_message "contrast.api.dtm.RpcStatus" do
    optional :code, :enum, 1, "contrast.api.dtm.RpcStatus.Code"
    optional :msg, :string, 2
  end
  add_enum "contrast.api.dtm.RpcStatus.Code" do
    value :OK, 0
    value :UNKNOWN, 1
  end
  add_message "contrast.api.dtm.SqliSinkRequest" do
    optional :uuid, :string, 1
    optional :dialect, :enum, 2, "contrast.api.dtm.SqliSinkRequest.Dialect"
    optional :query, :string, 3
  end
  add_enum "contrast.api.dtm.SqliSinkRequest.Dialect" do
    value :MYSQL, 0
    value :POSTGRESQL, 1
    value :UNKNOWN, 99
  end
  add_message "contrast.api.dtm.SqliSinkResponse" do
    optional :status, :message, 1, "contrast.api.dtm.RpcStatus"
    optional :user_input, :message, 3, "contrast.api.dtm.UserInput"
    oneof :finding do
      optional :sqli, :message, 10, "contrast.api.dtm.SqlInjectionDetails"
      optional :sqli_semantic, :message, 11, "contrast.api.dtm.SqlInjectionSemanticAnalysisDetails"
    end
  end
  add_message "contrast.api.dtm.HttpResponse" do
    optional :uuid, :string, 1
    optional :timestamp_ms, :int64, 2
    optional :response_code, :int32, 3
    map :response_headers, :string, :string, 4
    optional :parsed_response_headers, :bool, 5
    map :normalized_response_headers, :string, :message, 6, "contrast.api.dtm.Pair"
    optional :response_body, :string, 10
    optional :parsed_response_body, :bool, 11
    optional :document_type, :enum, 12, "contrast.api.dtm.HttpRequest.DocumentType"
    optional :response_body_binary, :bytes, 13
  end
  add_message "contrast.api.dtm.SimplePair" do
    optional :key, :string, 1
    optional :value, :string, 2
  end
  add_message "contrast.api.dtm.Pair" do
    optional :key, :string, 1
    repeated :values, :string, 2
  end
  add_message "contrast.api.dtm.AttackResult" do
    optional :response, :enum, 1, "contrast.api.dtm.AttackResult.ResponseType"
    optional :rule_id, :string, 2
    repeated :samples, :message, 6, "contrast.api.dtm.RaspRuleSample"
    optional :tags, :string, 7
    optional :acc_updated_ms, :int64, 16
    optional :acc_limit, :int32, 17
    optional :acc_window_ms, :int64, 18
    optional :acc_count, :int32, 19
    optional :acc_mode, :string, 21
    optional :acc_msg, :string, 22
  end
  add_enum "contrast.api.dtm.AttackResult.ResponseType" do
    value :NO_ACTION, 0
    value :BLOCKED, 1
    value :MONITORED, 2
    value :PROBED, 3
    value :BLOCKED_AT_PERIMETER, 4
    value :AGGREGATED, 5
  end
  add_message "contrast.api.dtm.RaspRuleSample" do
    optional :timestamp_ms, :int64, 2
    repeated :stack_trace_elements, :message, 4, "contrast.api.dtm.StackTraceElement"
    optional :user_input, :message, 5, "contrast.api.dtm.UserInput"
    oneof :details do
      optional :brute_force, :message, 16, "contrast.api.dtm.BruteForceDetails"
      optional :bot_blocker, :message, 17, "contrast.api.dtm.BotBlockerDetails"
      optional :cmdi, :message, 18, "contrast.api.dtm.CmdInjectionDetails"
      optional :csrf, :message, 19, "contrast.api.dtm.CsrfDetails"
      optional :cve, :message, 20, "contrast.api.dtm.CveDetails"
      optional :untrusted_deserialization, :message, 21, "contrast.api.dtm.UntrustedDeserializationDetails"
      optional :el_injection, :message, 22, "contrast.api.dtm.ElInjectionDetails"
      optional :ip_blacklist, :message, 23, "contrast.api.dtm.IpBlacklistDetails"
      optional :mark_of_the_beast, :message, 24, "contrast.api.dtm.MarkOfTheBeastDetails"
      optional :padding_oracle, :message, 25, "contrast.api.dtm.PaddingOracleDetails"
      optional :path_traversal, :message, 26, "contrast.api.dtm.PathTraversalDetails"
      optional :re_dos, :message, 27, "contrast.api.dtm.ReDosDetails"
      optional :sqli, :message, 28, "contrast.api.dtm.SqlInjectionDetails"
      optional :ssrf, :message, 29, "contrast.api.dtm.SsrfDetails"
      optional :virtual_patch, :message, 30, "contrast.api.dtm.VirtualPatchDetails"
      optional :xss, :message, 31, "contrast.api.dtm.XssDetails"
      optional :xxe, :message, 32, "contrast.api.dtm.XxeDetails"
      optional :no_sqli, :message, 33, "contrast.api.dtm.NoSqlInjectionDetails"
      optional :method_tampering, :message, 34, "contrast.api.dtm.HttpMethodTamperingDetails"
      optional :cve_2017_0898, :message, 35, "contrast.api.dtm.Cve20170898Details"
      optional :cve_2017_14033, :message, 36, "contrast.api.dtm.Cve201714033Details"
      optional :cve_2017_14064, :message, 37, "contrast.api.dtm.Cve201714064Details"
      optional :cve_2017_17405, :message, 38, "contrast.api.dtm.Cve201717405Details"
      optional :mod_security, :message, 39, "contrast.api.dtm.ModSecurityDetails"
      optional :endpoint, :message, 40, "contrast.api.dtm.EndpointBanDetails"
      optional :sqli_semantic, :message, 41, "contrast.api.dtm.SqlInjectionSemanticAnalysisDetails"
      optional :cmdi_semantic, :message, 42, "contrast.api.dtm.CmdInjectionSemanticAnalysisDetails"
      optional :path_traversal_semantic, :message, 43, "contrast.api.dtm.PathTraversalSemanticAnalysisDetails"
      optional :ssjs, :message, 44, "contrast.api.dtm.SsjsInjectionDetails"
    end
  end
  add_message "contrast.api.dtm.EndpointBanDetails" do
    optional :ip, :string, 1
    optional :request_uri, :string, 2
    optional :response_code, :int32, 3
  end
  add_message "contrast.api.dtm.ModSecurityDetails" do
    optional :transaction_id, :string, 1
    optional :status, :int32, 2
    repeated :logs, :message, 3, "contrast.api.dtm.ModSecurityLog"
  end
  add_message "contrast.api.dtm.ModSecurityLog" do
    optional :message, :string, 2
    map :params, :string, :string, 3
  end
  add_message "contrast.api.dtm.BruteForceDetails" do
    optional :count, :int32, 1
  end
  add_message "contrast.api.dtm.BotBlockerDetails" do
    optional :bot, :string, 1
    optional :user_agent, :string, 2
  end
  add_message "contrast.api.dtm.CmdInjectionDetails" do
    optional :command, :string, 1
    optional :start_idx, :int32, 2
    optional :end_idx, :int32, 3
  end
  add_message "contrast.api.dtm.CmdInjectionSemanticAnalysisDetails" do
    optional :command, :string, 1
    repeated :findings, :enum, 2, "contrast.api.dtm.CmdInjectionSemanticAnalysisDetails.Finding"
  end
  add_enum "contrast.api.dtm.CmdInjectionSemanticAnalysisDetails.Finding" do
    value :CHAINING, 0
    value :BACKDOOR, 1
    value :DANGEROUS_PATH, 2
  end
  add_message "contrast.api.dtm.CsrfDetails" do
    optional :name, :string, 1
    optional :expected, :string, 2
    optional :presented, :string, 3
  end
  add_message "contrast.api.dtm.CveDetails" do
    optional :name, :string, 1
    optional :value, :string, 2
    optional :cve, :string, 3
    optional :library, :string, 4
  end
  add_message "contrast.api.dtm.Cve20170898Details" do
    optional :format_string, :string, 1
    optional :malicious_format_group, :string, 2
    optional :precision_argument, :string, 3
    optional :value_argument, :string, 4
    optional :arguments, :string, 5
    optional :ruby_version, :string, 6
  end
  add_message "contrast.api.dtm.Cve201714033Details" do
    optional :asn1, :string, 1
    optional :ruby_version, :string, 2
  end
  add_message "contrast.api.dtm.Cve201714064Details" do
    optional :space, :string, 1
    optional :ruby_version, :string, 2
    optional :json_version, :string, 3
  end
  add_message "contrast.api.dtm.Cve201717405Details" do
    optional :method, :string, 1
    optional :file_name, :string, 2
    optional :ruby_version, :string, 3
  end
  add_message "contrast.api.dtm.HttpMethodTamperingDetails" do
    optional :method, :string, 1
    optional :response_code, :int32, 2
  end
  add_message "contrast.api.dtm.UntrustedDeserializationDetails" do
    optional :command, :bool, 1
    optional :deserializer, :string, 2
  end
  add_message "contrast.api.dtm.ElInjectionDetails" do
    optional :attr_value, :string, 1
    optional :version, :string, 2
    optional :library_filename, :string, 3
  end
  add_message "contrast.api.dtm.IpBlacklistDetails" do
    optional :ip, :string, 1
    optional :uuid, :string, 2
  end
  add_message "contrast.api.dtm.MarkOfTheBeastDetails" do
    optional :number, :string, 1
    optional :vendor, :string, 2
    optional :version, :string, 3
  end
  add_message "contrast.api.dtm.PaddingOracleDetails" do
    optional :message, :string, 1
    optional :period, :int32, 2
    optional :hits, :int32, 3
  end
  add_message "contrast.api.dtm.PathTraversalDetails" do
    optional :path, :string, 1
  end
  add_message "contrast.api.dtm.PathTraversalSemanticAnalysisDetails" do
    optional :path, :string, 1
    repeated :findings, :enum, 2, "contrast.api.dtm.PathTraversalSemanticAnalysisDetails.Finding"
  end
  add_enum "contrast.api.dtm.PathTraversalSemanticAnalysisDetails.Finding" do
    value :CUSTOM_CODE_ACCESSING_SYSTEM_FILES, 0
    value :COMMON_FILE_EXPLOITS, 1
  end
  add_message "contrast.api.dtm.ReDosDetails" do
    optional :times_accessed, :int32, 1
    optional :execution_time_ms, :int64, 2
    optional :pattern, :string, 3
    optional :offending_string, :string, 4
  end
  add_message "contrast.api.dtm.SsjsInjectionDetails" do
    optional :code_string, :string, 1
    optional :start_idx, :int32, 2
    optional :end_idx, :int32, 3
    optional :boundary_overrun_idx, :int32, 4
  end
  add_message "contrast.api.dtm.SqlInjectionDetails" do
    optional :start_idx, :int32, 1
    optional :end_idx, :int32, 2
    optional :boundary_overrun_idx, :int32, 3
    optional :input_boundary_idx, :int32, 4
    optional :query, :string, 5
  end
  add_message "contrast.api.dtm.SqlInjectionSemanticAnalysisDetails" do
    optional :query, :string, 1
    optional :finding, :enum, 2, "contrast.api.dtm.SqlInjectionSemanticAnalysisDetails.Finding"
  end
  add_enum "contrast.api.dtm.SqlInjectionSemanticAnalysisDetails.Finding" do
    value :CHAINING, 0
    value :SUSPICIOUS_UNION, 1
    value :DANGEROUS_FUNCTION, 2
    value :TAUTOLOGY, 3
  end
  add_message "contrast.api.dtm.NoSqlInjectionDetails" do
    optional :start_idx, :int32, 1
    optional :end_idx, :int32, 2
    optional :boundary_overrun_idx, :int32, 3
    optional :input_boundary_idx, :int32, 4
    optional :query, :string, 5
  end
  add_message "contrast.api.dtm.SsrfDetails" do
    optional :url, :string, 1
  end
  add_message "contrast.api.dtm.VirtualPatchDetails" do
    optional :uuid, :string, 1
  end
  add_message "contrast.api.dtm.XssDetails" do
    optional :input, :string, 1
    repeated :matches, :message, 2, "contrast.api.dtm.XssMatch"
  end
  add_message "contrast.api.dtm.XssMatch" do
    optional :evidence_start_ms, :int64, 1
    optional :evidence, :string, 2
    optional :offset, :int32, 3
  end
  add_message "contrast.api.dtm.XxeDetails" do
    optional :xml, :string, 1
    repeated :declared_entities, :message, 2, "contrast.api.dtm.XxeMatch"
    repeated :entities_resolved, :message, 3, "contrast.api.dtm.XxeWrapper"
  end
  add_message "contrast.api.dtm.XxeMatch" do
    optional :start_idx, :int32, 1
    optional :end_idx, :int32, 2
  end
  add_message "contrast.api.dtm.XxeWrapper" do
    optional :system_id, :string, 1
    optional :public_id, :string, 2
  end
  add_message "contrast.api.dtm.UserInput" do
    optional :path, :string, 2
    optional :key, :string, 3
    optional :value, :string, 4
    optional :input_type, :enum, 5, "contrast.api.dtm.UserInput.InputType"
    optional :document_type, :enum, 6, "contrast.api.dtm.HttpRequest.DocumentType"
    repeated :matcher_ids, :string, 7
  end
  add_enum "contrast.api.dtm.UserInput.InputType" do
    value :UNDEFINED_TYPE, 0
    value :BODY, 1
    value :COOKIE_NAME, 2
    value :COOKIE_VALUE, 3
    value :HEADER, 4
    value :PARAMETER_NAME, 5
    value :PARAMETER_VALUE, 6
    value :QUERYSTRING, 7
    value :URI, 8
    value :SOCKET, 9
    value :JSON_VALUE, 10
    value :JSON_ARRAYED_VALUE, 11
    value :MULTIPART_CONTENT_TYPE, 16
    value :MULTIPART_VALUE, 17
    value :MULTIPART_FIELD_NAME, 18
    value :MULTIPART_NAME, 19
    value :XML_VALUE, 20
    value :DWR_VALUE, 21
    value :METHOD, 22
    value :REQUEST, 23
    value :UNKNOWN, 99
  end
  add_message "contrast.api.dtm.StackTraceElement" do
    optional :declaring_class, :string, 1
    optional :method_name, :string, 2
    optional :file_name, :string, 3
    optional :line_number, :int32, 4
  end
  add_message "contrast.api.dtm.TraceEvent" do
    optional :action, :enum, 1, "contrast.api.dtm.TraceEvent.Action"
    optional :type, :enum, 2, "contrast.api.dtm.TraceEvent.EventType"
    optional :timestamp_ms, :int64, 3
    optional :thread, :string, 4
    optional :signature, :message, 6, "contrast.api.dtm.TraceEventSignature"
    optional :field_name, :string, 7
    optional :context, :string, 8
    optional :code, :string, 9
    optional :object, :message, 16, "contrast.api.dtm.TraceEventObject"
    optional :ret, :message, 17, "contrast.api.dtm.TraceEventObject"
    repeated :args, :message, 18, "contrast.api.dtm.TraceEventObject"
    repeated :stack, :message, 19, "contrast.api.dtm.TraceStack"
    repeated :event_sources, :message, 20, "contrast.api.dtm.TraceEventSource"
    optional :source, :string, 21
    optional :target, :string, 22
    repeated :taint_ranges, :message, 23, "contrast.api.dtm.TraceTaintRange"
    optional :object_id, :int64, 24
    repeated :parent_object_ids, :message, 25, "contrast.api.dtm.ParentObjectId"
  end
  add_enum "contrast.api.dtm.TraceEvent.Action" do
    value :CREATION, 0
    value :PROPAGATION, 1
    value :TRIGGER, 2
    value :TAG, 3
    value :A2A, 4
    value :A2P, 5
    value :A2O, 6
    value :A2R, 7
    value :O2A, 8
    value :O2P, 9
    value :O2O, 10
    value :O2R, 11
    value :P2A, 12
    value :P2P, 13
    value :P2O, 14
    value :P2R, 15
  end
  add_enum "contrast.api.dtm.TraceEvent.EventType" do
    value :TYPE_METHOD, 0
    value :TYPE_PROPAGATION, 1
    value :TYPE_TAG, 2
  end
  add_message "contrast.api.dtm.TraceEventSignature" do
    optional :return_type, :string, 1
    optional :class_name, :string, 2
    optional :method_name, :string, 3
    repeated :arg_types, :string, 4
    optional :constructor, :bool, 5
    optional :void_method, :bool, 6
    optional :flags, :int32, 7
  end
  add_message "contrast.api.dtm.TraceEventSource" do
    optional :type, :string, 1
    optional :name, :string, 2
  end
  add_message "contrast.api.dtm.TraceEventObject" do
    optional :tracked, :bool, 1
    optional :value, :string, 2
    repeated :ranges, :message, 3, "contrast.api.dtm.TraceTaintRange"
  end
  add_message "contrast.api.dtm.TraceTaintRange" do
    optional :tag, :string, 1
    optional :range, :string, 2
  end
  add_message "contrast.api.dtm.ParentObjectId" do
    optional :id, :int64, 1
  end
  add_message "contrast.api.dtm.TraceStack" do
    optional :signature, :string, 1
    optional :declaring_class, :string, 2
    optional :method_name, :string, 3
    optional :file_name, :string, 4
    optional :line_number, :int32, 5
    optional :type, :string, 6
    optional :eval, :string, 7
  end
  add_message "contrast.api.dtm.RouteCoverage" do
    optional :verb, :string, 1
    optional :url, :string, 2
    optional :route, :string, 3
    optional :count, :int32, 4
  end
  add_message "contrast.api.dtm.ObservedRoute" do
    optional :signature, :string, 1
    optional :url, :string, 2
    optional :verb, :string, 3
    optional :session_id, :string, 4
    repeated :sources, :message, 5, "contrast.api.dtm.TraceEventSource"
  end
  add_message "contrast.api.dtm.CmdiSinkRequest" do
  end
  add_message "contrast.api.dtm.CmdiSinkResponse" do
  end
  add_message "contrast.api.dtm.PtSinkRequest" do
  end
  add_message "contrast.api.dtm.PtSinkResponse" do
  end
end

module Contrast
  module Api
    module Dtm
      Message = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Message").msgclass
      Poll = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Poll").msgclass
      Noop = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Noop").msgclass
      ServerActivity = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ServerActivity").msgclass
      AgentStartup = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.AgentStartup").msgclass
      ApplicationCreate = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ApplicationCreate").msgclass
      ApplicationUpdate = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ApplicationUpdate").msgclass
      Activity = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Activity").msgclass
      Finding = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Finding").msgclass
      DynamicSource = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.DynamicSource").msgclass
      PossibleSecurityControl = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PossibleSecurityControl").msgclass
      View = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.View").msgclass
      Platform = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Platform").msgclass
      ArchitectureComponent = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ArchitectureComponent").msgclass
      Library = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Library").msgclass
      LibraryUsageUpdate = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.LibraryUsageUpdate").msgclass
      Address = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Address").msgclass
      RawRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.RawRequest").msgclass
      RawResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.RawResponse").msgclass
      HttpRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.HttpRequest").msgclass
      HttpRequest::Authentication = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.HttpRequest.Authentication").enummodule
      HttpRequest::DocumentType = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.HttpRequest.DocumentType").enummodule
      RpcStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.RpcStatus").msgclass
      RpcStatus::Code = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.RpcStatus.Code").enummodule
      SqliSinkRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SqliSinkRequest").msgclass
      SqliSinkRequest::Dialect = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SqliSinkRequest.Dialect").enummodule
      SqliSinkResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SqliSinkResponse").msgclass
      HttpResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.HttpResponse").msgclass
      SimplePair = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SimplePair").msgclass
      Pair = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Pair").msgclass
      AttackResult = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.AttackResult").msgclass
      AttackResult::ResponseType = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.AttackResult.ResponseType").enummodule
      RaspRuleSample = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.RaspRuleSample").msgclass
      EndpointBanDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.EndpointBanDetails").msgclass
      ModSecurityDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ModSecurityDetails").msgclass
      ModSecurityLog = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ModSecurityLog").msgclass
      BruteForceDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.BruteForceDetails").msgclass
      BotBlockerDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.BotBlockerDetails").msgclass
      CmdInjectionDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CmdInjectionDetails").msgclass
      CmdInjectionSemanticAnalysisDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CmdInjectionSemanticAnalysisDetails").msgclass
      CmdInjectionSemanticAnalysisDetails::Finding = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CmdInjectionSemanticAnalysisDetails.Finding").enummodule
      CsrfDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CsrfDetails").msgclass
      CveDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CveDetails").msgclass
      Cve20170898Details = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Cve20170898Details").msgclass
      Cve201714033Details = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Cve201714033Details").msgclass
      Cve201714064Details = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Cve201714064Details").msgclass
      Cve201717405Details = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.Cve201717405Details").msgclass
      HttpMethodTamperingDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.HttpMethodTamperingDetails").msgclass
      UntrustedDeserializationDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.UntrustedDeserializationDetails").msgclass
      ElInjectionDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ElInjectionDetails").msgclass
      IpBlacklistDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.IpBlacklistDetails").msgclass
      MarkOfTheBeastDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.MarkOfTheBeastDetails").msgclass
      PaddingOracleDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PaddingOracleDetails").msgclass
      PathTraversalDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PathTraversalDetails").msgclass
      PathTraversalSemanticAnalysisDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PathTraversalSemanticAnalysisDetails").msgclass
      PathTraversalSemanticAnalysisDetails::Finding = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PathTraversalSemanticAnalysisDetails.Finding").enummodule
      ReDosDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ReDosDetails").msgclass
      SsjsInjectionDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SsjsInjectionDetails").msgclass
      SqlInjectionDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SqlInjectionDetails").msgclass
      SqlInjectionSemanticAnalysisDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SqlInjectionSemanticAnalysisDetails").msgclass
      SqlInjectionSemanticAnalysisDetails::Finding = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SqlInjectionSemanticAnalysisDetails.Finding").enummodule
      NoSqlInjectionDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.NoSqlInjectionDetails").msgclass
      SsrfDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.SsrfDetails").msgclass
      VirtualPatchDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.VirtualPatchDetails").msgclass
      XssDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.XssDetails").msgclass
      XssMatch = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.XssMatch").msgclass
      XxeDetails = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.XxeDetails").msgclass
      XxeMatch = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.XxeMatch").msgclass
      XxeWrapper = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.XxeWrapper").msgclass
      UserInput = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.UserInput").msgclass
      UserInput::InputType = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.UserInput.InputType").enummodule
      StackTraceElement = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.StackTraceElement").msgclass
      TraceEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceEvent").msgclass
      TraceEvent::Action = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceEvent.Action").enummodule
      TraceEvent::EventType = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceEvent.EventType").enummodule
      TraceEventSignature = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceEventSignature").msgclass
      TraceEventSource = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceEventSource").msgclass
      TraceEventObject = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceEventObject").msgclass
      TraceTaintRange = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceTaintRange").msgclass
      ParentObjectId = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ParentObjectId").msgclass
      TraceStack = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.TraceStack").msgclass
      RouteCoverage = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.RouteCoverage").msgclass
      ObservedRoute = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.ObservedRoute").msgclass
      CmdiSinkRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CmdiSinkRequest").msgclass
      CmdiSinkResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.CmdiSinkResponse").msgclass
      PtSinkRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PtSinkRequest").msgclass
      PtSinkResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("contrast.api.dtm.PtSinkResponse").msgclass
    end
  end
end