outputs

package
v1.15.2 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2021 License: AGPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OpsgenieServiceRegionUS = "US"
	OpsgenieServiceRegionEU = "EU"
)
View Source
const (
	AuthorizationHTTPHeader = "Authorization"
)

Variables

This section is empty.

Functions

func GetOpsGenieRegionalEndpoint added in v1.13.0

func GetOpsGenieRegionalEndpoint(serviceRegion string) string

Types

type AlertDeliveryResponse added in v1.8.0

type AlertDeliveryResponse struct {
	// StatusCode is the http response status code
	StatusCode int

	// Message is our wrapped 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

	// Success is true if we determine the request executed successfully. False otherwise.
	Success bool
}

AlertDeliveryResponse holds the response (success or failure) of an alert delivery request.

func (*AlertDeliveryResponse) Error added in v1.8.0

func (e *AlertDeliveryResponse) 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"`

	// An AlertContext
	AlertContext map[string]interface{} `json:"alertContext"`

	// 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

Asana creates a task in Asana projects

func (*OutputClient) CustomWebhook added in v1.5.0

CustomWebhook alert send an alert.

func (*OutputClient) Github

Github alert send an issue.

func (*OutputClient) Jira

Jira alert send an issue.

func (*OutputClient) MsTeams

MsTeams alert send an alert.

func (*OutputClient) Opsgenie

Opsgenie alert send an alert.

func (*OutputClient) PagerDuty

func (client *OutputClient) PagerDuty(
	ctx context.Context,
	alert *alertModels.Alert,
	config *outputModels.PagerDutyConfig,
) *AlertDeliveryResponse

PagerDuty sends an alert to a pager duty integration endpoint.

func (*OutputClient) Slack

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