outputs

package
v1.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2020 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AuthorizationHTTPHeader = "Authorization"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AlertDeliveryError

type AlertDeliveryError struct {
	// Message is the description of the problem: what went wrong.
	Message string

	// Permanent indicates whether the alert output should be retried.
	// For example, outputs which don't exist or errors creating the request are permanent failures.
	// But any error talking to the output itself can be retried by the Lambda function later.
	Permanent bool
}

AlertDeliveryError indicates whether a failed alert should be retried.

func (*AlertDeliveryError) Error

func (e *AlertDeliveryError) Error() string

type HTTPWrapper

type HTTPWrapper struct {
	// contains filtered or unexported fields
}

HTTPWrapper encapsulates the Golang's http client

type HTTPWrapperiface

type HTTPWrapperiface interface {
	// contains filtered or unexported methods
}

HTTPWrapperiface is the interface for our wrapper around Golang's http client

type HTTPiface

type HTTPiface interface {
	Do(*http.Request) (*http.Response, error)
}

HTTPiface is an interface for http.Client to simplify unit testing.

type Notification added in v1.5.0

type Notification struct {
	// [REQUIRED] The Policy or Rule ID
	ID string `json:"id"`

	// [REQUIRED] The timestamp (RFC3339) of the alert at creation.
	CreatedAt time.Time `json:"createdAt"`

	// [REQUIRED] The severity enum of the alert set in Panther UI. Will be one of INFO LOW MEDIUM HIGH CRITICAL.
	Severity string `json:"severity"`

	// [REQUIRED] The Type enum if an alert is for a rule or policy. Will be one of RULE POLICY.
	Type string `json:"type"`

	// [REQUIRED] Link to the alert in Panther UI
	Link string `json:"link"`

	// [REQUIRED] The title for this notification
	Title string `json:"title"`

	// [REQUIRED] The Name of the Rule or Policy
	Name *string `json:"name"`

	// An AlertID that was triggered by a Rule. It will be `null` in case of policies
	AlertID *string `json:"alertId"`

	// The Description of the rule set in Panther UI
	Description *string `json:"description"`

	// The Runbook is the user-provided triage information set in Panther UI
	Runbook *string `json:"runbook"`

	// Tags is the set of policy tags set in Panther UI
	Tags []string `json:"tags"`

	// Version is the S3 object version for the policy
	Version *string `json:"version"`
}

The default payload delivered by all outputs to destinations Each destination can augment this with its own custom fields. This struct intentionally never uses the `omitempty` attribute as we want to keep the keys even if they have `null` fields. However, we need to ensure there are no `null` arrays or objects.

type OutputClient

type OutputClient struct {
	// contains filtered or unexported fields
}

OutputClient encapsulates the clients that allow sending alerts to multiple outputs

func New

func New(sess *session.Session) *OutputClient

New creates a new client for alert delivery.

func (*OutputClient) Asana added in v0.2.0

func (client *OutputClient) Asana(alert *alertmodels.Alert, config *outputmodels.AsanaConfig) *AlertDeliveryError

Asana creates a task in Asana projects

func (*OutputClient) CustomWebhook added in v1.5.0

func (client *OutputClient) CustomWebhook(
	alert *alertmodels.Alert, config *outputmodels.CustomWebhookConfig) *AlertDeliveryError

CustomWebhook alert send an alert.

func (*OutputClient) Github

func (client *OutputClient) Github(
	alert *alertmodels.Alert, config *outputmodels.GithubConfig) *AlertDeliveryError

Github alert send an issue.

func (*OutputClient) Jira

func (client *OutputClient) Jira(
	alert *alertmodels.Alert, config *outputmodels.JiraConfig) *AlertDeliveryError

Jira alert send an issue.

func (*OutputClient) MsTeams

func (client *OutputClient) MsTeams(
	alert *alertmodels.Alert, config *outputmodels.MsTeamsConfig) *AlertDeliveryError

MsTeams alert send an alert.

func (*OutputClient) Opsgenie

func (client *OutputClient) Opsgenie(
	alert *alertmodels.Alert, config *outputmodels.OpsgenieConfig) *AlertDeliveryError

Opsgenie alert send an alert.

func (*OutputClient) PagerDuty

func (client *OutputClient) PagerDuty(alert *alertmodels.Alert, config *outputmodels.PagerDutyConfig) *AlertDeliveryError

PagerDuty sends an alert to a pager duty integration endpoint.

func (*OutputClient) Slack

func (client *OutputClient) Slack(alert *alertmodels.Alert, config *outputmodels.SlackConfig) *AlertDeliveryError

Slack sends an alert to a slack channel.

func (*OutputClient) Sns

Sns sends an alert to an SNS Topic. nolint: dupl

func (*OutputClient) Sqs

Sqs sends an alert to an SQS Queue. nolint: dupl

type PostInput

type PostInput struct {
	// contains filtered or unexported fields
}

PostInput type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL