summaryrefslogtreecommitdiff
path: root/lib/gitlab/alert_management/payload/generic.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/alert_management/payload/generic.rb')
-rw-r--r--lib/gitlab/alert_management/payload/generic.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/gitlab/alert_management/payload/generic.rb b/lib/gitlab/alert_management/payload/generic.rb
new file mode 100644
index 00000000000..7efdfac75dc
--- /dev/null
+++ b/lib/gitlab/alert_management/payload/generic.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+# Attribute mapping for alerts via generic alerting integration.
+module Gitlab
+ module AlertManagement
+ module Payload
+ class Generic < Base
+ DEFAULT_TITLE = 'New: Incident'
+ DEFAULT_SEVERITY = 'critical'
+
+ attribute :environment_name, paths: 'gitlab_environment_name'
+ attribute :hosts, paths: 'hosts'
+ attribute :monitoring_tool, paths: 'monitoring_tool'
+ attribute :runbook, paths: 'runbook'
+ attribute :service, paths: 'service'
+ attribute :severity, paths: 'severity', fallback: -> { DEFAULT_SEVERITY }
+ attribute :starts_at, paths: 'start_time', type: :time, fallback: -> { Time.current.utc }
+ attribute :title, paths: 'title', fallback: -> { DEFAULT_TITLE }
+
+ attribute :plain_gitlab_fingerprint, paths: 'fingerprint'
+ private :plain_gitlab_fingerprint
+ end
+ end
+ end
+end