firehydrant

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const BaseURL = "https://api.firehydrant.io/v1"

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Token   string
	BaseURL string
	// contains filtered or unexported fields
}

func NewClient

func NewClient(http core.HTTPContext, ctx core.IntegrationContext) (*Client, error)

func (*Client) CreateIncident

func (c *Client) CreateIncident(request CreateIncidentRequest) (*Incident, error)

func (*Client) CreateWebhook

func (c *Client) CreateWebhook(webhookURL, secret string, subscriptions []string) (*Webhook, error)

func (*Client) DeleteWebhook

func (c *Client) DeleteWebhook(id string) error

func (*Client) ListPriorities

func (c *Client) ListPriorities() ([]Priority, error)

func (*Client) ListServices

func (c *Client) ListServices() ([]Service, error)

func (*Client) ListSeverities

func (c *Client) ListSeverities() ([]Severity, error)

func (*Client) ListTeams

func (c *Client) ListTeams() ([]Team, error)

func (*Client) ListWebhooks

func (c *Client) ListWebhooks() ([]Webhook, error)

func (*Client) UpdateWebhook

func (c *Client) UpdateWebhook(id, webhookURL string, subscriptions []string) (*Webhook, error)

type Configuration

type Configuration struct {
	APIKey string `json:"apiKey"`
}

type CreateIncident

type CreateIncident struct{}

func (*CreateIncident) Actions

func (c *CreateIncident) Actions() []core.Action

func (*CreateIncident) Cancel

func (c *CreateIncident) Cancel(ctx core.ExecutionContext) error

func (*CreateIncident) Cleanup

func (c *CreateIncident) Cleanup(ctx core.SetupContext) error

func (*CreateIncident) Color

func (c *CreateIncident) Color() string

func (*CreateIncident) Configuration

func (c *CreateIncident) Configuration() []configuration.Field

func (*CreateIncident) Description

func (c *CreateIncident) Description() string

func (*CreateIncident) Documentation

func (c *CreateIncident) Documentation() string

func (*CreateIncident) ExampleOutput

func (c *CreateIncident) ExampleOutput() map[string]any

func (*CreateIncident) Execute

func (c *CreateIncident) Execute(ctx core.ExecutionContext) error

func (*CreateIncident) HandleAction

func (c *CreateIncident) HandleAction(ctx core.ActionContext) error

func (*CreateIncident) HandleWebhook

func (c *CreateIncident) HandleWebhook(ctx core.WebhookRequestContext) (int, error)

func (*CreateIncident) Icon

func (c *CreateIncident) Icon() string

func (*CreateIncident) Label

func (c *CreateIncident) Label() string

func (*CreateIncident) Name

func (c *CreateIncident) Name() string

func (*CreateIncident) OutputChannels

func (c *CreateIncident) OutputChannels(configuration any) []core.OutputChannel

func (*CreateIncident) ProcessQueueItem

func (c *CreateIncident) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*CreateIncident) Setup

func (c *CreateIncident) Setup(ctx core.SetupContext) error

type CreateIncidentRequest

type CreateIncidentRequest struct {
	Name                  string   `json:"name"`
	Summary               string   `json:"summary,omitempty"`
	Description           string   `json:"description,omitempty"`
	CustomerImpactSummary string   `json:"customer_impact_summary,omitempty"`
	Severity              string   `json:"severity,omitempty"`
	Priority              string   `json:"priority,omitempty"`
	TagList               []string `json:"tag_list,omitempty"`
	TeamIDs               []string `json:"team_ids,omitempty"`
}

CreateIncidentRequest represents the request body for creating an incident

type CreateIncidentSpec

type CreateIncidentSpec struct {
	Name        string `json:"name"`
	Summary     string `json:"summary"`
	Description string `json:"description"`
	Severity    string `json:"severity"`
	Priority    string `json:"priority"`
}

type CreateWebhookRequest

type CreateWebhookRequest struct {
	URL           string   `json:"url"`
	Secret        string   `json:"secret,omitempty"`
	Subscriptions []string `json:"subscriptions,omitempty"`
}

type FireHydrant

type FireHydrant struct{}

func (*FireHydrant) Actions

func (f *FireHydrant) Actions() []core.Action

func (*FireHydrant) Cleanup

func (*FireHydrant) Components

func (f *FireHydrant) Components() []core.Component

func (*FireHydrant) Configuration

func (f *FireHydrant) Configuration() []configuration.Field

func (*FireHydrant) Description

func (f *FireHydrant) Description() string

func (*FireHydrant) HandleAction

func (f *FireHydrant) HandleAction(ctx core.IntegrationActionContext) error

func (*FireHydrant) HandleRequest

func (f *FireHydrant) HandleRequest(ctx core.HTTPRequestContext)

func (*FireHydrant) Icon

func (f *FireHydrant) Icon() string

func (*FireHydrant) Instructions

func (f *FireHydrant) Instructions() string

func (*FireHydrant) Label

func (f *FireHydrant) Label() string

func (*FireHydrant) ListResources

func (f *FireHydrant) ListResources(resourceType string, ctx core.ListResourcesContext) ([]core.IntegrationResource, error)

func (*FireHydrant) Name

func (f *FireHydrant) Name() string

func (*FireHydrant) Sync

func (f *FireHydrant) Sync(ctx core.SyncContext) error

func (*FireHydrant) Triggers

func (f *FireHydrant) Triggers() []core.Trigger

type FireHydrantWebhookHandler

type FireHydrantWebhookHandler struct{}

func (*FireHydrantWebhookHandler) Cleanup

func (*FireHydrantWebhookHandler) CompareConfig

func (h *FireHydrantWebhookHandler) CompareConfig(a, b any) (bool, error)

func (*FireHydrantWebhookHandler) Merge

func (h *FireHydrantWebhookHandler) Merge(current, requested any) (any, bool, error)

func (*FireHydrantWebhookHandler) Setup

type Incident

type Incident struct {
	ID                    string      `json:"id"`
	Name                  string      `json:"name"`
	Description           string      `json:"description"`
	Summary               string      `json:"summary"`
	CustomerImpactSummary string      `json:"customer_impact_summary"`
	CurrentMilestone      string      `json:"current_milestone"`
	Number                int         `json:"number"`
	CreatedAt             string      `json:"created_at"`
	StartedAt             string      `json:"started_at"`
	IncidentURL           string      `json:"incident_url"`
	Severity              string      `json:"severity"`
	Priority              string      `json:"priority"`
	TagList               []string    `json:"tag_list"`
	Impacts               []any       `json:"impacts"`
	Milestones            []Milestone `json:"milestones"`
}

Incident represents a FireHydrant incident

type Milestone

type Milestone struct {
	Type       string `json:"type"`
	OccurredAt string `json:"occurred_at"`
}

Milestone represents a FireHydrant incident milestone

type OnIncident

type OnIncident struct{}

func (*OnIncident) Actions

func (t *OnIncident) Actions() []core.Action

func (*OnIncident) Cleanup

func (t *OnIncident) Cleanup(ctx core.TriggerContext) error

func (*OnIncident) Color

func (t *OnIncident) Color() string

func (*OnIncident) Configuration

func (t *OnIncident) Configuration() []configuration.Field

func (*OnIncident) Description

func (t *OnIncident) Description() string

func (*OnIncident) Documentation

func (t *OnIncident) Documentation() string

func (*OnIncident) ExampleData

func (t *OnIncident) ExampleData() map[string]any

func (*OnIncident) HandleAction

func (t *OnIncident) HandleAction(ctx core.TriggerActionContext) (map[string]any, error)

func (*OnIncident) HandleWebhook

func (t *OnIncident) HandleWebhook(ctx core.WebhookRequestContext) (int, error)

func (*OnIncident) Icon

func (t *OnIncident) Icon() string

func (*OnIncident) Label

func (t *OnIncident) Label() string

func (*OnIncident) Name

func (t *OnIncident) Name() string

func (*OnIncident) Setup

func (t *OnIncident) Setup(ctx core.TriggerContext) error

type OnIncidentConfiguration

type OnIncidentConfiguration struct {
	Severities       []string `json:"severities"`
	CurrentMilestone []string `json:"current_milestone" mapstructure:"current_milestone"`
}

type PrioritiesResponse

type PrioritiesResponse struct {
	Data []Priority `json:"data"`
}

PrioritiesResponse represents the JSON:API response for listing priorities

type Priority

type Priority struct {
	Slug        string `json:"slug"`
	Description string `json:"description"`
}

Priority represents a FireHydrant priority level

type Service

type Service struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

Service represents a FireHydrant service

type ServicesResponse

type ServicesResponse struct {
	Data []Service `json:"data"`
}

type SeveritiesResponse

type SeveritiesResponse struct {
	Data []Severity `json:"data"`
}

SeveritiesResponse represents the JSON:API response for listing severities

type Severity

type Severity struct {
	Slug        string `json:"slug"`
	Description string `json:"description"`
	Type        string `json:"type"`
}

Severity represents a FireHydrant severity level

type Team

type Team struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

Team represents a FireHydrant team

type TeamsResponse

type TeamsResponse struct {
	Data []Team `json:"data"`
}

type UpdateWebhookRequest

type UpdateWebhookRequest struct {
	URL           string   `json:"url"`
	Subscriptions []string `json:"subscriptions,omitempty"`
}

type Webhook

type Webhook struct {
	ID            string   `json:"id"`
	URL           string   `json:"url"`
	State         string   `json:"state"`
	Subscriptions []string `json:"subscriptions"`
}

Webhook represents a FireHydrant webhook configuration

type WebhookConfiguration

type WebhookConfiguration struct {
	Subscriptions []string `json:"subscriptions" mapstructure:"subscriptions"`
}

type WebhookData

type WebhookData struct {
	Incident map[string]any `json:"incident"`
}

WebhookData contains the incident data from the webhook

type WebhookEvent

type WebhookEvent struct {
	Operation    string `json:"operation"`
	ResourceType string `json:"resource_type"`
}

WebhookEvent represents the event metadata in a FireHydrant webhook

type WebhookMetadata

type WebhookMetadata struct {
	WebhookID string `json:"webhookId" mapstructure:"webhookId"`
}

type WebhookPayload

type WebhookPayload struct {
	Data  WebhookData  `json:"data"`
	Event WebhookEvent `json:"event"`
}

WebhookPayload represents the FireHydrant webhook payload

type WebhooksResponse

type WebhooksResponse struct {
	Data []Webhook `json:"data"`
}

Jump to

Keyboard shortcuts

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