# README

notifications

import "github.com/greenbone/opensight-golang-libraries/pkg/notifications"

Package Notifications provides a client to communicate with the OpenSight Notification Service github.com/greenbone/opensight\-notification\-service

Index

type Client

Client can be used to send notifications

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

func NewClient

func NewClient(httpClient *http.Client, config Config) *Client

NewClient returns a new Client with the notification service address (host:port) set. As httpClient you can use e.g. [http.DefaultClient].

func (*Client) CreateNotification

func (c *Client) CreateNotification(ctx context.Context, notification Notification) error

CreateNotification sends a notification to the notification service. The request is retried up to the configured number of retries with an exponential backoff. So it can take some time until the functions returns.

type Config

Config configures the notification service client

type Config struct {
    Address      string
    MaxRetries   int
    RetryWaitMin time.Duration
    RetryWaitMax time.Duration
}

type Level

Level describes the severity of the notification

type Level string

const (
    LevelInfo     Level = "info"
    LevelWarning  Level = "warning"
    LevelError    Level = "error"
    LevelCritical Level = "critical"
)

type Notification

type Notification struct {
    // omit property `Id` here, as it is read only
    Origin       string
    OriginUri    string // can be used to provide a link to the origin
    Timestamp    time.Time
    Title        string // can also be seen as the 'type'
    Detail       string
    Level        Level
    CustomFields map[string]any // can contain arbitrary structured information about the notification
}

Generated by gomarkdoc

# Functions

NewClient returns a new [Client] with the notification service address (host:port) set.

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

Client can be used to send notifications.
Config configures the notification service client.
No description provided by the author

# Type aliases

Level describes the severity of the notification.