pagerduty

package module
Version: v1.4.3 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2021 License: Apache-2.0 Imports: 14 Imported by: 161

README

GoDoc Go Report Card License

go-pagerduty

go-pagerduty is a CLI and go client library for the PagerDuty v2 API.

Installation

First, download the source code

go get github.com/PagerDuty/go-pagerduty

Next build the application.

cd $GOPATH/src/github.com/PagerDuty/go-pagerduty
make install

Usage

CLI

The CLI requires an authentication token, which can be specified in .pd.yml file in the home directory of the user, or passed as a command-line argument. Example of config file:

---
authtoken: fooBar
Commands

pd command provides a single entrypoint for all the API endpoints, with individual API represented by their own sub commands. For an exhaustive list of sub-commands, try:

pd --help

An example of the service sub-command

pd service list
Client Library
package main

import (
	"fmt"
	"github.com/PagerDuty/go-pagerduty"
)

var	authtoken = "" // Set your auth token here

func main() {
	var opts pagerduty.ListEscalationPoliciesOptions
	client := pagerduty.NewClient(authtoken)
	eps, err := client.ListEscalationPolicies(opts)
	if err != nil {
		panic(err)
	}
	for _, p := range eps.EscalationPolicies {
		fmt.Println(p.Name)
	}
}

The PagerDuty API client also exposes its HTTP client as the HTTPClient field. If you need to use your own HTTP client, for doing things like defining your own transport settings, you can replace the default HTTP client with your own by simply by setting a new value in the HTTPClient field.

API Error Responses

For cases where your request results in an error from the API, you can use the errors.As() function from the standard library to extract the pagerduty.APIError error value and inspect more details about the error, including the HTTP response code and PagerDuty API Error Code.

package main

import (
	"fmt"
	"github.com/PagerDuty/go-pagerduty"
)

var	authtoken = "" // Set your auth token here

func main() {
	client := pagerduty.NewClient(authtoken)
	user, err := client.GetUser("NOTREAL", pagerduty.GetUserOptions{})
	if err != nil {
		var aerr pagerduty.APIError

		if errors.As(err, &aerr) {
			if aerr.RateLimited() {
				fmt.Println("rate limited")
				return
			}

			fmt.Println("unknown status code:", aerr.StatusCode)

			return
		}

		panic(err)
	}
	fmt.Println(user)
}

Contributing

  1. Fork it ( https://github.com/PagerDuty/go-pagerduty/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

Apache 2

Documentation

Index

Constants

View Source
const (
	// Version is current version of this client.
	Version = "1.4.3"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type APIDetails

type APIDetails struct {
	Type    string `json:"type,omitempty"`
	Details string `json:"details,omitempty"`
}

APIDetails are the fields required to represent a details non-hydrated object.

type APIError added in v1.4.0

type APIError struct {
	// StatusCode is the HTTP response status code
	StatusCode int `json:"-"`

	// APIError represents the object returned by the API when an error occurs,
	// which includes messages that should hopefully provide useful context
	// to the end user.
	//
	// If the API response did not contain an error object, the .Valid field of
	// APIError will be false. If .Valid is true, the .ErrorObject field is
	// valid and should be consulted.
	APIError NullAPIErrorObject `json:"error"`
	// contains filtered or unexported fields
}

APIError represents the error response received when an API call fails. The HTTP response code is set inside of the StatusCode field, with the APIError field being the structured JSON error object returned from the API.

This type also provides some helper methods like .RateLimited(), .NotFound(), and .Temporary() to help callers reason about how to handle the error.

You can read more about the HTTP status codes and API error codes returned from the API here: https://developer.pagerduty.com/docs/rest-api-v2/errors/

func (APIError) Error added in v1.4.0

func (a APIError) Error() string

Error satisfies the error interface, and should contain the StatusCode, APIErrorObject.Message, and APIErrorObject.Code.

func (APIError) NotFound added in v1.4.0

func (a APIError) NotFound() bool

NotFound returns whether this was an error where it seems like the resource was not found.

func (APIError) RateLimited added in v1.4.0

func (a APIError) RateLimited() bool

RateLimited returns whether the response had a status of 429, and as such the client is rate limited. The PagerDuty rate limits should reset once per minute, and for the REST API they are an account-wide rate limit (not per API key or IP).

func (APIError) Temporary added in v1.4.0

func (a APIError) Temporary() bool

Temporary returns whether it was a temporary error, one of which is a RateLimited error.

type APIErrorObject added in v1.4.0

type APIErrorObject struct {
	Code    int      `json:"code,omitempty"`
	Message string   `json:"message,omitempty"`
	Errors  []string `json:"errors,omitempty"`
}

APIErrorObject represents the object returned by the API when an error occurs. This includes messages that should hopefully provide useful context to the end user.

type APIListObject

type APIListObject struct {
	Limit  uint `url:"limit,omitempty"`
	Offset uint `url:"offset,omitempty"`
	More   bool `url:"more,omitempty"`
	Total  uint `url:"total,omitempty"`
}

APIListObject are the fields used to control pagination when listing objects.

type APIObject

type APIObject struct {
	ID      string `json:"id,omitempty"`
	Type    string `json:"type,omitempty"`
	Summary string `json:"summary,omitempty"`
	Self    string `json:"self,omitempty"`
	HTMLURL string `json:"html_url,omitempty"`
}

APIObject represents generic api json response that is shared by most domain object (like escalation

type APIReference

type APIReference struct {
	ID   string `json:"id,omitempty"`
	Type string `json:"type,omitempty"`
}

APIReference are the fields required to reference another API object.

type Acknowledgement

type Acknowledgement struct {
	At           string    `json:"at,omitempty"`
	Acknowledger APIObject `json:"acknowledger,omitempty"`
}

Acknowledgement is the data structure of an acknowledgement of an incident.

type ActiveBetween added in v1.2.0

type ActiveBetween struct {
	StartTime int `json:"start_time,omitempty"`
	EndTime   int `json:"end_time,omitempty"`
}

ActiveBetween represents an active_between object for setting a timeline for rules

type AddUserToTeamOptions added in v1.4.0

type AddUserToTeamOptions struct {
	TeamID string       `json:"-"`
	UserID string       `json:"-"`
	Role   TeamUserRole `json:"role,omitempty"`
}

AddUserToTeamOptions is an option struct for the AddUserToTeamWithContext method.

type Addon

type Addon struct {
	APIObject
	Name     string      `json:"name,omitempty"`
	Src      string      `json:"src,omitempty"`
	Services []APIObject `json:"services,omitempty"`
}

Addon is a third-party add-on to PagerDuty's UI.

type Agent

type Agent APIObject

Agent is the actor who carried out the action.

type AlertCounts

type AlertCounts struct {
	Triggered uint `json:"triggered,omitempty"`
	Resolved  uint `json:"resolved,omitempty"`
	All       uint `json:"all,omitempty"`
}

AlertCounts is the data structure holding a summary of the number of alerts by status of an incident.

type AlertGroupParamsConfig added in v1.4.0

type AlertGroupParamsConfig struct {
	Timeout   uint     `json:"timeout,omitempty"`
	Aggregate string   `json:"aggregate,omitempty"`
	Fields    []string `json:"fields,omitempty"`
}

AlertGroupParamsConfig is the config object on alert_grouping_parameters

type AlertGroupingParameters added in v1.4.0

type AlertGroupingParameters struct {
	Type   string                 `json:"type"`
	Config AlertGroupParamsConfig `json:"config"`
}

AlertGroupingParameters defines how alerts on the servicewill be automatically grouped into incidents

type AnalyticsData added in v1.4.0

type AnalyticsData struct {
	ServiceID                      string  `json:"service_id,omitempty"`
	ServiceName                    string  `json:"service_name,omitempty"`
	TeamID                         string  `json:"team_id,omitempty"`
	TeamName                       string  `json:"team_name,omitempty"`
	MeanSecondsToResolve           int     `json:"mean_seconds_to_resolve,omitempty"`
	MeanSecondsToFirstAck          int     `json:"mean_seconds_to_first_ack,omitempty"`
	MeanSecondsToEngage            int     `json:"mean_seconds_to_engage,omitempty"`
	MeanSecondsToMobilize          int     `json:"mean_seconds_to_mobilize,omitempty"`
	MeanEngagedSeconds             int     `json:"mean_engaged_seconds,omitempty"`
	MeanEngagedUserCount           int     `json:"mean_engaged_user_count,omitempty"`
	TotalEscalationCount           int     `json:"total_escalation_count,omitempty"`
	MeanAssignmentCount            int     `json:"mean_assignment_count,omitempty"`
	TotalBusinessHourInterruptions int     `json:"total_business_hour_interruptions,omitempty"`
	TotalSleepHourInterruptions    int     `json:"total_sleep_hour_interruptions,omitempty"`
	TotalOffHourInterruptions      int     `json:"total_off_hour_interruptions,omitempty"`
	TotalSnoozedSeconds            int     `json:"total_snoozed_seconds,omitempty"`
	TotalEngagedSeconds            int     `json:"total_engaged_seconds,omitempty"`
	TotalIncidentCount             int     `json:"total_incident_count,omitempty"`
	UpTimePct                      float64 `json:"up_time_pct,omitempty"`
	UserDefinedEffortSeconds       int     `json:"user_defined_effort_seconds,omitempty"`
	RangeStart                     string  `json:"range_start,omitempty"`
}

AnalyticsData represents the structure of the analytics we have available.

type AnalyticsFilter added in v1.4.0

type AnalyticsFilter struct {
	CreatedAtStart string   `json:"created_at_start,omitempty"`
	CreatedAtEnd   string   `json:"created_at_end,omitempty"`
	Urgency        string   `json:"urgency,omitempty"`
	Major          bool     `json:"major,omitempty"`
	ServiceIDs     []string `json:"service_ids,omitempty"`
	TeamIDs        []string `json:"team_ids,omitempty"`
	PriorityIDs    []string `json:"priority_ids,omitempty"`
	PriorityNames  []string `json:"priority_names,omitempty"`
}

AnalyticsFilter represents the set of filters as part of the request to PagerDuty when requesting analytics.

type AnalyticsRequest added in v1.4.0

type AnalyticsRequest struct {
	Filters       *AnalyticsFilter `json:"filters,omitempty"`
	AggregateUnit string           `json:"aggregate_unit,omitempty"`
	TimeZone      string           `json:"time_zone,omitempty"`
}

AnalyticsRequest represents the request to be sent to PagerDuty when you want aggregated analytics.

type AnalyticsResponse added in v1.4.0

type AnalyticsResponse struct {
	Data          []AnalyticsData  `json:"data,omitempty"`
	Filters       *AnalyticsFilter `json:"filters,omitempty"`
	AggregateUnit string           `json:"aggregate_unit,omitempty"`
	TimeZone      string           `json:"time_zone,omitempty"`
}

AnalyticsResponse represents the response from the PagerDuty API.

type Assignee

type Assignee struct {
	Assignee APIObject `json:"assignee"`
}

Assignee is an individual assigned to an incident.

type Assignment

type Assignment struct {
	At       string    `json:"at,omitempty"`
	Assignee APIObject `json:"assignee,omitempty"`
}

Assignment is the data structure for an assignment of an incident

type BusinessService added in v1.3.0

type BusinessService struct {
	ID             string               `json:"id,omitempty"`
	Name           string               `json:"name,omitempty"`
	Type           string               `json:"type,omitempty"`
	Summary        string               `json:"summary,omitempty"`
	Self           string               `json:"self,omitempty"`
	PointOfContact string               `json:"point_of_contact,omitempty"`
	HTMLUrl        string               `json:"html_url,omitempty"`
	Description    string               `json:"description,omitempty"`
	Team           *BusinessServiceTeam `json:"team,omitempty"`
}

BusinessService represents a business service.

type BusinessServicePayload added in v1.3.0

type BusinessServicePayload struct {
	BusinessService *BusinessService `json:"business_service,omitempty"`
}

BusinessServicePayload represents payload with a business service object

type BusinessServiceTeam added in v1.3.0

type BusinessServiceTeam struct {
	ID   string `json:"id,omitempty"`
	Type string `json:"type,omitempty"`
	Self string `json:"self,omitempty"`
}

BusinessServiceTeam represents a team object in a business service

type ChangeEvent added in v1.4.0

type ChangeEvent struct {
	RoutingKey string             `json:"routing_key"`
	Payload    ChangeEventPayload `json:"payload"`
	Links      []ChangeEventLink  `json:"links"`
}

ChangeEvent represents a ChangeEvent's request parameters https://developer.pagerduty.com/docs/events-api-v2/send-change-events/#parameters

type ChangeEventLink struct {
	Href string `json:"href"`
	Text string `json:"text"`
}

ChangeEventLink represents a single link in a ChangeEvent https://developer.pagerduty.com/docs/events-api-v2/send-change-events/#the-links-property

type ChangeEventPayload added in v1.4.0

type ChangeEventPayload struct {
	Source        string                 `json:"source"`
	Summary       string                 `json:"summary"`
	Timestamp     string                 `json:"timestamp"`
	CustomDetails map[string]interface{} `json:"custom_details"`
}

ChangeEventPayload ChangeEvent ChangeEventPayload https://developer.pagerduty.com/docs/events-api-v2/send-change-events/#example-request-payload

type ChangeEventResponse added in v1.4.0

type ChangeEventResponse struct {
	Status  string   `json:"status,omitempty"`
	Message string   `json:"message,omitempty"`
	Errors  []string `json:"errors,omitempty"`
}

ChangeEventResponse is the json response body for an event

type Channel

type Channel struct {
	Type string
	Raw  map[string]interface{}
}

Channel is the means by which the action was carried out.

func (*Channel) MarshalJSON added in v1.4.0

func (c *Channel) MarshalJSON() ([]byte, error)

MarshalJSON Expands the LogEntry.Channel object to correctly marshal it back

func (*Channel) UnmarshalJSON added in v1.2.0

func (c *Channel) UnmarshalJSON(b []byte) error

UnmarshalJSON Expands the LogEntry.Channel object to parse out a raw value

type Client

type Client struct {

	// HTTPClient is the HTTP client used for making requests against the
	// PagerDuty API. You can use either *http.Client here, or your own
	// implementation.
	HTTPClient HTTPClient
	// contains filtered or unexported fields
}

Client wraps http client

func NewClient

func NewClient(authToken string, options ...ClientOptions) *Client

NewClient creates an API client using an account/user API token

func NewOAuthClient added in v1.2.0

func NewOAuthClient(authToken string, options ...ClientOptions) *Client

NewOAuthClient creates an API client using an OAuth token

func (*Client) AddEscalationPolicyToTeam

func (c *Client) AddEscalationPolicyToTeam(teamID, epID string) error

AddEscalationPolicyToTeam adds an escalation policy to a team. It's recommended to use AddEscalationPolicyToTeamWithContext instead.

func (*Client) AddEscalationPolicyToTeamWithContext added in v1.4.0

func (c *Client) AddEscalationPolicyToTeamWithContext(ctx context.Context, teamID, epID string) error

AddEscalationPolicyToTeamWithContext adds an escalation policy to a team.

func (*Client) AddUserToTeam

func (c *Client) AddUserToTeam(teamID, userID string) error

AddUserToTeam adds a user to a team.

func (*Client) AddUserToTeamWithContext added in v1.4.0

func (c *Client) AddUserToTeamWithContext(ctx context.Context, o AddUserToTeamOptions) error

AddUserToTeamWithContext adds a user to a team.

func (*Client) AssignTags added in v1.4.0

func (c *Client) AssignTags(e, eid string, a *TagAssignments) (*http.Response, error)

AssignTags adds and removes tag assignments with entities. It's recommended to use AssignTagsWithContext instead.

func (*Client) AssignTagsWithContext added in v1.4.0

func (c *Client) AssignTagsWithContext(ctx context.Context, e, eid string, a *TagAssignments) (*http.Response, error)

AssignTagsWithContext adds and removes tag assignments with entities.

func (*Client) AssociateServiceDependencies added in v1.3.0

func (c *Client) AssociateServiceDependencies(dependencies *ListServiceDependencies) (*ListServiceDependencies, *http.Response, error)

AssociateServiceDependencies Create new dependencies between two services. It's recommended to use AssociateServiceDependenciesWithContext instead.

func (*Client) AssociateServiceDependenciesWithContext added in v1.4.0

func (c *Client) AssociateServiceDependenciesWithContext(ctx context.Context, dependencies *ListServiceDependencies) (*ListServiceDependencies, error)

AssociateServiceDependenciesWithContext Create new dependencies between two services.

func (*Client) CreateBusinessService added in v1.3.0

func (c *Client) CreateBusinessService(b *BusinessService) (*BusinessService, *http.Response, error)

CreateBusinessService creates a new business service. It's recommended to use CreateBusinessServiceWithContext instead

func (*Client) CreateBusinessServiceWithContext added in v1.4.0

func (c *Client) CreateBusinessServiceWithContext(ctx context.Context, b *BusinessService) (*BusinessService, error)

CreateBusinessServiceWithContext creates a new business service.

func (*Client) CreateChangeEvent added in v1.4.0

func (c *Client) CreateChangeEvent(e ChangeEvent) (*ChangeEventResponse, error)

CreateChangeEvent Sends PagerDuty a single ChangeEvent to record The v2EventsAPIEndpoint parameter must be set on the client Documentation can be found at https://developer.pagerduty.com/docs/events-api-v2/send-change-events

It's recommended to use CreateChangeEventWithContext instead.

func (*Client) CreateChangeEventWithContext added in v1.4.0

func (c *Client) CreateChangeEventWithContext(ctx context.Context, e ChangeEvent) (*ChangeEventResponse, error)

CreateChangeEventWithContext sends PagerDuty a single ChangeEvent to record The v2EventsAPIEndpoint parameter must be set on the client Documentation can be found at https://developer.pagerduty.com/docs/events-api-v2/send-change-events

func (*Client) CreateEscalationPolicy

func (c *Client) CreateEscalationPolicy(e EscalationPolicy) (*EscalationPolicy, error)

CreateEscalationPolicy creates a new escalation policy. It's recommended to use CreateEscalationPolicyWithContext instead.

func (*Client) CreateEscalationPolicyWithContext added in v1.4.0

func (c *Client) CreateEscalationPolicyWithContext(ctx context.Context, e EscalationPolicy) (*EscalationPolicy, error)

CreateEscalationPolicyWithContext creates a new escalation policy.

func (*Client) CreateEscalationRule

func (c *Client) CreateEscalationRule(escID string, e EscalationRule) (*EscalationRule, error)

CreateEscalationRule creates a new escalation rule for an escalation policy and appends it to the end of the existing escalation rules. It's recommended to use CreateEscalationRuleWithContext instead.

func (*Client) CreateEscalationRuleWithContext added in v1.4.0

func (c *Client) CreateEscalationRuleWithContext(ctx context.Context, escID string, e EscalationRule) (*EscalationRule, error)

CreateEscalationRuleWithContext creates a new escalation rule for an escalation policy and appends it to the end of the existing escalation rules.

func (*Client) CreateExtension

func (c *Client) CreateExtension(e *Extension) (*Extension, error)

CreateExtension creates a single extension.

func (*Client) CreateExtensionWithContext added in v1.4.0

func (c *Client) CreateExtensionWithContext(ctx context.Context, e *Extension) (*Extension, error)

CreateExtensionWithContext creates a single extension.

func (*Client) CreateIncident

func (c *Client) CreateIncident(from string, o *CreateIncidentOptions) (*Incident, error)

CreateIncident creates an incident synchronously without a corresponding event from a monitoring service. It's recommended to use CreateIncidentWithContext instead.

func (*Client) CreateIncidentNote deprecated

func (c *Client) CreateIncidentNote(id string, note IncidentNote) error

CreateIncidentNote creates a new note for the specified incident.

Deprecated: please use CreateIncidentNoteWithContext going forward

func (*Client) CreateIncidentNoteWithContext added in v1.4.0

func (c *Client) CreateIncidentNoteWithContext(ctx context.Context, id string, note IncidentNote) (*IncidentNote, error)

CreateIncidentNoteWithContext creates a new note for the specified incident.

func (*Client) CreateIncidentNoteWithResponse

func (c *Client) CreateIncidentNoteWithResponse(id string, note IncidentNote) (*IncidentNote, error)

CreateIncidentNoteWithResponse creates a new note for the specified incident. It's recommended to use CreateIncidentNoteWithContext instead.

func (*Client) CreateIncidentWithContext added in v1.4.0

func (c *Client) CreateIncidentWithContext(ctx context.Context, from string, o *CreateIncidentOptions) (*Incident, error)

CreateIncidentWithContext creates an incident synchronously without a corresponding event from a monitoring service.

func (*Client) CreateIntegration

func (c *Client) CreateIntegration(id string, i Integration) (*Integration, error)

CreateIntegration creates a new integration belonging to a service. It's recommended to use CreateIntegrationWithContext instead.

func (*Client) CreateIntegrationWithContext added in v1.4.0

func (c *Client) CreateIntegrationWithContext(ctx context.Context, id string, i Integration) (*Integration, error)

CreateIntegrationWithContext creates a new integration belonging to a service.

func (*Client) CreateMaintenanceWindow

func (c *Client) CreateMaintenanceWindow(from string, o MaintenanceWindow) (*MaintenanceWindow, error)

CreateMaintenanceWindow creates a new maintenance window for the specified services. It's recommended to use CreateMaintenanceWindowWithContext instead.

func (*Client) CreateMaintenanceWindowWithContext added in v1.4.0

func (c *Client) CreateMaintenanceWindowWithContext(ctx context.Context, from string, o MaintenanceWindow) (*MaintenanceWindow, error)

CreateMaintenanceWindowWithContext creates a new maintenance window for the specified services.

func (*Client) CreateMaintenanceWindows deprecated

func (c *Client) CreateMaintenanceWindows(o MaintenanceWindow) (*MaintenanceWindow, error)

CreateMaintenanceWindows creates a new maintenance window for the specified services. Deprecated: Use `CreateMaintenanceWindowWithContext` instead.

func (*Client) CreateOverride

func (c *Client) CreateOverride(id string, o Override) (*Override, error)

CreateOverride creates an override for a specific user covering the specified time range. It's recommended to use CreateOverrideWithContext instead.

func (*Client) CreateOverrideWithContext added in v1.4.0

func (c *Client) CreateOverrideWithContext(ctx context.Context, id string, o Override) (*Override, error)

CreateOverrideWithContext creates an override for a specific user covering the specified time range.

func (*Client) CreateRuleset added in v1.2.0

func (c *Client) CreateRuleset(r *Ruleset) (*Ruleset, *http.Response, error)

CreateRuleset creates a new ruleset. It's recommended to use CreateRulesetWithContext instead.

func (*Client) CreateRulesetRule added in v1.2.0

func (c *Client) CreateRulesetRule(rulesetID string, rule *RulesetRule) (*RulesetRule, *http.Response, error)

CreateRulesetRule creates a new rule for a ruleset. It's recommended to use CreateRulesetRuleWithContext instead.

func (*Client) CreateRulesetRuleWithContext added in v1.4.0

func (c *Client) CreateRulesetRuleWithContext(ctx context.Context, rulesetID string, rule *RulesetRule) (*RulesetRule, *http.Response, error)

CreateRulesetRuleWithContext creates a new rule for a ruleset.

func (*Client) CreateRulesetWithContext added in v1.4.0

func (c *Client) CreateRulesetWithContext(ctx context.Context, r *Ruleset) (*Ruleset, error)

CreateRulesetWithContext creates a new ruleset.

func (*Client) CreateSchedule

func (c *Client) CreateSchedule(s Schedule) (*Schedule, error)

CreateSchedule creates a new on-call schedule. It's recommended to use CreateScheduleWithContext instead.

func (*Client) CreateScheduleWithContext added in v1.4.0

func (c *Client) CreateScheduleWithContext(ctx context.Context, s Schedule) (*Schedule, error)

CreateScheduleWithContext creates a new on-call schedule.

func (*Client) CreateService

func (c *Client) CreateService(s Service) (*Service, error)

CreateService creates a new service. It's recommended to use CreateServiceWithContext instead.

func (*Client) CreateServiceRule added in v1.4.0

func (c *Client) CreateServiceRule(ctx context.Context, serviceID string, rule ServiceRule) (ServiceRule, error)

CreateServiceRule creates a service rule.

func (*Client) CreateServiceWithContext added in v1.4.0

func (c *Client) CreateServiceWithContext(ctx context.Context, s Service) (*Service, error)

CreateServiceWithContext creates a new service.

func (*Client) CreateTag added in v1.4.0

func (c *Client) CreateTag(t *Tag) (*Tag, *http.Response, error)

CreateTag creates a new tag. It's recommended to use CreateTagWithContext instead.

func (*Client) CreateTagWithContext added in v1.4.0

func (c *Client) CreateTagWithContext(ctx context.Context, t *Tag) (*Tag, *http.Response, error)

CreateTagWithContext creates a new tag.

func (*Client) CreateTeam

func (c *Client) CreateTeam(t *Team) (*Team, error)

CreateTeam creates a new team. It's recommended to use CreateTeamWithContext instead.

func (*Client) CreateTeamWithContext added in v1.4.0

func (c *Client) CreateTeamWithContext(ctx context.Context, t *Team) (*Team, error)

CreateTeamWithContext creates a new team.

func (*Client) CreateUser

func (c *Client) CreateUser(u User) (*User, error)

CreateUser creates a new user. It's recommended to use CreateUserWithContext instead.

func (*Client) CreateUserContactMethod

func (c *Client) CreateUserContactMethod(userID string, cm ContactMethod) (*ContactMethod, error)

CreateUserContactMethod creates a new contact method for user. It's recommended to use CreateUserContactMethodWithContext instead.

func (*Client) CreateUserContactMethodWithContext added in v1.4.0

func (c *Client) CreateUserContactMethodWithContext(ctx context.Context, userID string, cm ContactMethod) (*ContactMethod, error)

CreateUserContactMethodWithContext creates a new contact method for user.

func (*Client) CreateUserNotificationRule added in v1.2.0

func (c *Client) CreateUserNotificationRule(userID string, rule NotificationRule) (*NotificationRule, error)

CreateUserNotificationRule creates a new notification rule for a user. It's recommended to use CreateUserNotificationRuleWithContext instead.

func (*Client) CreateUserNotificationRuleWithContext added in v1.4.0

func (c *Client) CreateUserNotificationRuleWithContext(ctx context.Context, userID string, rule NotificationRule) (*NotificationRule, error)

CreateUserNotificationRuleWithContext creates a new notification rule for a user.

func (*Client) CreateUserWithContext added in v1.4.0

func (c *Client) CreateUserWithContext(ctx context.Context, u User) (*User, error)

CreateUserWithContext creates a new user.

func (*Client) DeleteAddon

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

DeleteAddon deletes an add-on from your account. It's recommended to use DeleteAddonWithContext instead.

func (*Client) DeleteAddonWithContext added in v1.4.0

func (c *Client) DeleteAddonWithContext(ctx context.Context, id string) error

DeleteAddonWithContext deletes an add-on from your account.

func (*Client) DeleteBusinessService added in v1.3.0

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

DeleteBusinessService deletes a business_service. It's recommended to use DeleteBusinessServiceWithContext instead.

func (*Client) DeleteBusinessServiceWithContext added in v1.4.0

func (c *Client) DeleteBusinessServiceWithContext(ctx context.Context, id string) error

DeleteBusinessServiceWithContext deletes a business_service.

func (*Client) DeleteEscalationPolicy

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

DeleteEscalationPolicy deletes an existing escalation policy and rules. It's recommended to use DeleteEscalationPolicyWithContext instead.

func (*Client) DeleteEscalationPolicyWithContext added in v1.4.0

func (c *Client) DeleteEscalationPolicyWithContext(ctx context.Context, id string) error

DeleteEscalationPolicyWithContext deletes an existing escalation policy and rules.

func (*Client) DeleteEscalationRule

func (c *Client) DeleteEscalationRule(escID string, id string) error

DeleteEscalationRule deletes an existing escalation rule. It's recommended to use DeleteEscalationRuleWithContext instead.

func (*Client) DeleteEscalationRuleWithContext added in v1.4.0

func (c *Client) DeleteEscalationRuleWithContext(ctx context.Context, escID string, id string) error

DeleteEscalationRuleWithContext deletes an existing escalation rule.

func (*Client) DeleteExtension

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

DeleteExtension deletes an extension by its ID.

func (*Client) DeleteExtensionWithContext added in v1.4.0

func (c *Client) DeleteExtensionWithContext(ctx context.Context, id string) error

DeleteExtensionWithContext deletes an extension by its ID.

func (*Client) DeleteIntegration

func (c *Client) DeleteIntegration(serviceID string, integrationID string) error

DeleteIntegration deletes an existing integration. It's recommended to use DeleteIntegrationWithContext instead.

func (*Client) DeleteIntegrationWithContext added in v1.4.0

func (c *Client) DeleteIntegrationWithContext(ctx context.Context, serviceID string, integrationID string) error

DeleteIntegrationWithContext deletes an existing integration.

func (*Client) DeleteMaintenanceWindow

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

DeleteMaintenanceWindow deletes an existing maintenance window if it's in the future, or ends it if it's currently on-going. It's recommended to use DeleteMaintenanceWindowWithContext instead.

func (*Client) DeleteMaintenanceWindowWithContext added in v1.4.0

func (c *Client) DeleteMaintenanceWindowWithContext(ctx context.Context, id string) error

DeleteMaintenanceWindowWithContext deletes an existing maintenance window if it's in the future, or ends it if it's currently on-going.

func (*Client) DeleteOverride

func (c *Client) DeleteOverride(scheduleID, overrideID string) error

DeleteOverride removes an override. It's recommended to use DeleteOverrideWithContext instead.

func (*Client) DeleteOverrideWithContext added in v1.4.0

func (c *Client) DeleteOverrideWithContext(ctx context.Context, scheduleID, overrideID string) error

DeleteOverrideWithContext removes an override.

func (*Client) DeleteRuleset added in v1.2.0

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

DeleteRuleset deletes a ruleset. It's recommended to use DeleteRulesetWithContext instead.

func (*Client) DeleteRulesetRule added in v1.2.0

func (c *Client) DeleteRulesetRule(rulesetID, ruleID string) error

DeleteRulesetRule deletes a rule. It's recommended to use DeleteRulesetRuleWithContext instead.

func (*Client) DeleteRulesetRuleWithContext added in v1.4.0

func (c *Client) DeleteRulesetRuleWithContext(ctx context.Context, rulesetID, ruleID string) error

DeleteRulesetRuleWithContext deletes a rule.

func (*Client) DeleteRulesetWithContext added in v1.4.0

func (c *Client) DeleteRulesetWithContext(ctx context.Context, id string) error

DeleteRulesetWithContext deletes a ruleset.

func (*Client) DeleteSchedule

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

DeleteSchedule deletes an on-call schedule. It's recommended to use DeleteScheduleWithContext instead.

func (*Client) DeleteScheduleWithContext added in v1.4.0

func (c *Client) DeleteScheduleWithContext(ctx context.Context, id string) error

DeleteScheduleWithContext deletes an on-call schedule.

func (*Client) DeleteService

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

DeleteService deletes an existing service. It's recommended to use DeleteServiceWithContext instead.

func (*Client) DeleteServiceRule added in v1.4.0

func (c *Client) DeleteServiceRule(ctx context.Context, serviceID, ruleID string) error

DeleteServiceRule deletes a service rule.

func (*Client) DeleteServiceWithContext added in v1.4.0

func (c *Client) DeleteServiceWithContext(ctx context.Context, id string) error

DeleteServiceWithContext deletes an existing service.

func (*Client) DeleteTag added in v1.4.0

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

DeleteTag removes an existing tag. It's recommended to use DeleteTagWithContext instead.

func (*Client) DeleteTagWithContext added in v1.4.0

func (c *Client) DeleteTagWithContext(ctx context.Context, id string) error

DeleteTagWithContext removes an existing tag.

func (*Client) DeleteTeam

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

DeleteTeam removes an existing team. It's recommended to use DeleteTeamWithContext instead.

func (*Client) DeleteTeamWithContext added in v1.4.0

func (c *Client) DeleteTeamWithContext(ctx context.Context, id string) error

DeleteTeamWithContext removes an existing team.

func (*Client) DeleteUser

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

DeleteUser deletes a user. It's recommended to use DeleteUserWithContext instead.

func (*Client) DeleteUserContactMethod

func (c *Client) DeleteUserContactMethod(userID, contactMethodID string) error

DeleteUserContactMethod deletes a user. It's recommended to use DeleteUserContactMethodWithContext instead.

func (*Client) DeleteUserContactMethodWithContext added in v1.4.0

func (c *Client) DeleteUserContactMethodWithContext(ctx context.Context, userID, contactMethodID string) error

DeleteUserContactMethodWithContext deletes a user.

func (*Client) DeleteUserNotificationRule added in v1.2.0

func (c *Client) DeleteUserNotificationRule(userID, ruleID string) error

DeleteUserNotificationRule deletes a notification rule for a user. It's recommended to use DeleteUserNotificationRuleWithContext instead.

func (*Client) DeleteUserNotificationRuleWithContext added in v1.4.0

func (c *Client) DeleteUserNotificationRuleWithContext(ctx context.Context, userID, ruleID string) error

DeleteUserNotificationRuleWithContext deletes a notification rule for a user.

func (*Client) DeleteUserWithContext added in v1.4.0

func (c *Client) DeleteUserWithContext(ctx context.Context, id string) error

DeleteUserWithContext deletes a user.

func (*Client) DisassociateServiceDependencies added in v1.3.0

func (c *Client) DisassociateServiceDependencies(dependencies *ListServiceDependencies) (*ListServiceDependencies, *http.Response, error)

DisassociateServiceDependencies Disassociate dependencies between two services.

func (*Client) DisassociateServiceDependenciesWithContext added in v1.4.0

func (c *Client) DisassociateServiceDependenciesWithContext(ctx context.Context, dependencies *ListServiceDependencies) (*ListServiceDependencies, error)

DisassociateServiceDependenciesWithContext Disassociate dependencies between two services.

func (*Client) GetAddon

func (c *Client) GetAddon(id string) (*Addon, error)

GetAddon gets details about an existing add-on. It's recommended to use GetAddonWithContext instead.

func (*Client) GetAddonWithContext added in v1.4.0

func (c *Client) GetAddonWithContext(ctx context.Context, id string) (*Addon, error)

GetAddonWithContext gets details about an existing add-on.

func (*Client) GetAggregatedIncidentData added in v1.4.0

func (c *Client) GetAggregatedIncidentData(ctx context.Context, analytics AnalyticsRequest) (AnalyticsResponse, error)

GetAggregatedIncidentData gets the aggregated incident analytics for the requested data.

func (*Client) GetAggregatedServiceData added in v1.4.0

func (c *Client) GetAggregatedServiceData(ctx context.Context, analytics AnalyticsRequest) (AnalyticsResponse, error)

GetAggregatedServiceData gets the aggregated service analytics for the requested data.

func (*Client) GetAggregatedTeamData added in v1.4.0

func (c *Client) GetAggregatedTeamData(ctx context.Context, analytics AnalyticsRequest) (AnalyticsResponse, error)

GetAggregatedTeamData gets the aggregated team analytics for the requested data.

func (*Client) GetBusinessService added in v1.3.0

func (c *Client) GetBusinessService(id string) (*BusinessService, *http.Response, error)

GetBusinessService gets details about a business service. It's recommended to use GetBusinessServiceWithContext instead.

func (*Client) GetBusinessServiceWithContext added in v1.4.0

func (c *Client) GetBusinessServiceWithContext(ctx context.Context, id string) (*BusinessService, error)

GetBusinessServiceWithContext gets details about a business service.

func (*Client) GetCurrentUser

func (c *Client) GetCurrentUser(o GetCurrentUserOptions) (*User, error)

GetCurrentUser gets details about the authenticated user when using a user-level API key or OAuth token. It's recommended to use GetCurrentUserWithContext instead.

func (*Client) GetCurrentUserWithContext added in v1.4.0

func (c *Client) GetCurrentUserWithContext(ctx context.Context, o GetCurrentUserOptions) (*User, error)

GetCurrentUserWithContext gets details about the authenticated user when using a user-level API key or OAuth token.

func (*Client) GetEscalationPoliciesByTag added in v1.4.0

func (c *Client) GetEscalationPoliciesByTag(tid string) (*ListEPResponse, error)

GetEscalationPoliciesByTag gets related escalation policies based on the tag. This method currently handles pagination of the response, so all escalation policy references with the tag should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use GetEscalationPoliciesByTagPaginated() instead.

func (*Client) GetEscalationPoliciesByTagPaginated added in v1.4.0

func (c *Client) GetEscalationPoliciesByTagPaginated(ctx context.Context, tid string) ([]*APIObject, error)

GetEscalationPoliciesByTagPaginated gets related escalation policies based on the tag. To get the full info of the EP, you will need to iterate over the returend slice and get that policy's details.

func (*Client) GetEscalationPolicy

func (c *Client) GetEscalationPolicy(id string, o *GetEscalationPolicyOptions) (*EscalationPolicy, error)

GetEscalationPolicy gets information about an existing escalation policy and its rules. It's recommended to use GetEscalationPolicyWithContext instead.

func (*Client) GetEscalationPolicyWithContext added in v1.4.0

func (c *Client) GetEscalationPolicyWithContext(ctx context.Context, id string, o *GetEscalationPolicyOptions) (*EscalationPolicy, error)

GetEscalationPolicyWithContext gets information about an existing escalation policy and its rules.

func (*Client) GetEscalationRule

func (c *Client) GetEscalationRule(escID string, id string, o *GetEscalationRuleOptions) (*EscalationRule, error)

GetEscalationRule gets information about an existing escalation rule. It's recommended to use GetEscalationRuleWithContext instead.

func (*Client) GetEscalationRuleWithContext added in v1.4.0

func (c *Client) GetEscalationRuleWithContext(ctx context.Context, escID string, id string, o *GetEscalationRuleOptions) (*EscalationRule, error)

GetEscalationRuleWithContext gets information about an existing escalation rule.

func (*Client) GetExtension

func (c *Client) GetExtension(id string) (*Extension, error)

GetExtension gets an extension by its ID.

func (*Client) GetExtensionSchema

func (c *Client) GetExtensionSchema(id string) (*ExtensionSchema, error)

GetExtensionSchema gets a single extension schema. It's recommended to use GetExtensionSchemaWithContext instead.

func (*Client) GetExtensionSchemaWithContext added in v1.4.0

func (c *Client) GetExtensionSchemaWithContext(ctx context.Context, id string) (*ExtensionSchema, error)

GetExtensionSchemaWithContext gets a single extension schema.

func (*Client) GetExtensionWithContext added in v1.4.0

func (c *Client) GetExtensionWithContext(ctx context.Context, id string) (*Extension, error)

GetExtensionWithContext gets an extension by its ID.

func (*Client) GetIncident

func (c *Client) GetIncident(id string) (*Incident, error)

GetIncident shows detailed information about an incident. It's recommended to use GetIncidentWithContext instead.

func (*Client) GetIncidentAlert added in v1.3.0

func (c *Client) GetIncidentAlert(incidentID, alertID string) (*IncidentAlertResponse, *http.Response, error)

GetIncidentAlert gets the alert that triggered the incident. It's recommended to use GetIncidentAlertWithContext instead.

func (*Client) GetIncidentAlertWithContext added in v1.4.0

func (c *Client) GetIncidentAlertWithContext(ctx context.Context, incidentID, alertID string) (*IncidentAlertResponse, error)

GetIncidentAlertWithContext gets the alert that triggered the incident.

func (*Client) GetIncidentWithContext added in v1.4.0

func (c *Client) GetIncidentWithContext(ctx context.Context, id string) (*Incident, error)

GetIncidentWithContext shows detailed information about an incident.

func (*Client) GetIntegration

func (c *Client) GetIntegration(serviceID, integrationID string, o GetIntegrationOptions) (*Integration, error)

GetIntegration gets details about an integration belonging to a service. It's recommended to use GetIntegrationWithContext instead.

func (*Client) GetIntegrationWithContext added in v1.4.0

func (c *Client) GetIntegrationWithContext(ctx context.Context, serviceID, integrationID string, o GetIntegrationOptions) (*Integration, error)

GetIntegrationWithContext gets details about an integration belonging to a service.

func (*Client) GetLogEntry

func (c *Client) GetLogEntry(id string, o GetLogEntryOptions) (*LogEntry, error)

GetLogEntry list log entries for the specified incident. It's recommended to use GetLogEntryWithContext instead.

func (*Client) GetLogEntryWithContext added in v1.4.0

func (c *Client) GetLogEntryWithContext(ctx context.Context, id string, o GetLogEntryOptions) (*LogEntry, error)

GetLogEntryWithContext list log entries for the specified incident.

func (*Client) GetMaintenanceWindow

func (c *Client) GetMaintenanceWindow(id string, o GetMaintenanceWindowOptions) (*MaintenanceWindow, error)

GetMaintenanceWindow gets an existing maintenance window. It's recommended to use GetMaintenanceWindowWithContext instead.

func (*Client) GetMaintenanceWindowWithContext added in v1.4.0

func (c *Client) GetMaintenanceWindowWithContext(ctx context.Context, id string, o GetMaintenanceWindowOptions) (*MaintenanceWindow, error)

GetMaintenanceWindowWithContext gets an existing maintenance window.

func (*Client) GetRuleset added in v1.2.0

func (c *Client) GetRuleset(id string) (*Ruleset, *http.Response, error)

GetRuleset gets details about a ruleset.

func (*Client) GetRulesetRule added in v1.2.0

func (c *Client) GetRulesetRule(rulesetID, ruleID string) (*RulesetRule, *http.Response, error)

GetRulesetRule gets an event rule. It's recommended to use GetRulesetRuleWithContext instead.

func (*Client) GetRulesetRuleWithContext added in v1.4.0

func (c *Client) GetRulesetRuleWithContext(ctx context.Context, rulesetID, ruleID string) (*RulesetRule, error)

GetRulesetRuleWithContext gets an event rule

func (*Client) GetRulesetWithContext added in v1.4.0

func (c *Client) GetRulesetWithContext(ctx context.Context, id string) (*Ruleset, error)

GetRulesetWithContext gets details about a ruleset.

func (*Client) GetSchedule

func (c *Client) GetSchedule(id string, o GetScheduleOptions) (*Schedule, error)

GetSchedule shows detailed information about a schedule, including entries for each layer and sub-schedule. It's recommended to use GetScheduleWithContext instead.

func (*Client) GetScheduleWithContext added in v1.4.0

func (c *Client) GetScheduleWithContext(ctx context.Context, id string, o GetScheduleOptions) (*Schedule, error)

GetScheduleWithContext shows detailed information about a schedule, including entries for each layer and sub-schedule.

func (*Client) GetService

func (c *Client) GetService(id string, o *GetServiceOptions) (*Service, error)

GetService gets details about an existing service. It's recommended to use GetServiceWithContext instead.

func (*Client) GetServiceRule added in v1.4.0

func (c *Client) GetServiceRule(ctx context.Context, serviceID, ruleID string) (ServiceRule, error)

GetServiceRule gets a service rule.

func (*Client) GetServiceWithContext added in v1.4.0

func (c *Client) GetServiceWithContext(ctx context.Context, id string, o *GetServiceOptions) (*Service, error)

GetServiceWithContext gets details about an existing service.

func (*Client) GetTag added in v1.4.0

func (c *Client) GetTag(id string) (*Tag, *http.Response, error)

GetTag gets details about an existing tag. It's recommended to use GetTagWithContext instead.

func (*Client) GetTagWithContext added in v1.4.0

func (c *Client) GetTagWithContext(ctx context.Context, id string) (*Tag, *http.Response, error)

GetTagWithContext gets details about an existing tag.

func (*Client) GetTagsForEntity added in v1.4.0

func (c *Client) GetTagsForEntity(entityType, entityID string, o ListTagOptions) (*ListTagResponse, error)

GetTagsForEntity get related tags for Users, Teams or Escalation Policies. This method currently handles pagination of the response, so all tags should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use GetTagsForEntityPaginated() instead.

func (*Client) GetTagsForEntityPaginated added in v1.4.0

func (c *Client) GetTagsForEntityPaginated(ctx context.Context, entityType, entityID string, o ListTagOptions) ([]*Tag, error)

GetTagsForEntityPaginated gets related tags for Users, Teams or Escalation Policies.

func (*Client) GetTeam

func (c *Client) GetTeam(id string) (*Team, error)

GetTeam gets details about an existing team. It's recommended to use GetTeamWithContext instead.

func (*Client) GetTeamWithContext added in v1.4.0

func (c *Client) GetTeamWithContext(ctx context.Context, id string) (*Team, error)

GetTeamWithContext gets details about an existing team.

func (*Client) GetTeamsByTag added in v1.4.0

func (c *Client) GetTeamsByTag(tid string) (*ListTeamsForTagResponse, error)

GetTeamsByTag gets related teams based on the tag. This method currently handles pagination of the response, so all team references with the tag should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use GetTeamsByTagPaginated() instead.

func (*Client) GetTeamsByTagPaginated added in v1.4.0

func (c *Client) GetTeamsByTagPaginated(ctx context.Context, tid string) ([]*APIObject, error)

GetTeamsByTagPaginated gets related teams based on the tag. To get the full info of the team, you will need to iterate over the returend slice and get that team's details.

func (*Client) GetUser

func (c *Client) GetUser(id string, o GetUserOptions) (*User, error)

GetUser gets details about an existing user. It's recommended to use GetUserWithContext instead.

func (*Client) GetUserContactMethod

func (c *Client) GetUserContactMethod(userID, contactMethodID string) (*ContactMethod, error)

GetUserContactMethod gets details about a contact method. It's recommended to use GetUserContactMethodWithContext instead.

func (*Client) GetUserContactMethodWithContext added in v1.4.0

func (c *Client) GetUserContactMethodWithContext(ctx context.Context, userID, contactMethodID string) (*ContactMethod, error)

GetUserContactMethodWithContext gets details about a contact method.

func (*Client) GetUserNotificationRule added in v1.2.0

func (c *Client) GetUserNotificationRule(userID, ruleID string) (*NotificationRule, error)

GetUserNotificationRule gets details about a notification rule. It's recommended to use GetUserNotificationRuleWithContext instead.

func (*Client) GetUserNotificationRuleWithContext added in v1.4.0

func (c *Client) GetUserNotificationRuleWithContext(ctx context.Context, userID, ruleID string) (*NotificationRule, error)

GetUserNotificationRuleWithContext gets details about a notification rule.

func (*Client) GetUserWithContext added in v1.4.0

func (c *Client) GetUserWithContext(ctx context.Context, id string, o GetUserOptions) (*User, error)

GetUserWithContext gets details about an existing user.

func (*Client) GetUsersByTag added in v1.4.0

func (c *Client) GetUsersByTag(tid string) (*ListUserResponse, error)

GetUsersByTag gets related user references based on the Tag. This method currently handles pagination of the response, so all user references with the tag should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use GetUsersByTagPaginated() instead.

func (*Client) GetUsersByTagPaginated added in v1.4.0

func (c *Client) GetUsersByTagPaginated(ctx context.Context, tid string) ([]*APIObject, error)

GetUsersByTagPaginated gets related user references based on the tag. To get the full info of the user, you will need to iterate over the returned slice and get that user's details.

func (*Client) GetVendor

func (c *Client) GetVendor(id string) (*Vendor, error)

GetVendor gets details about an existing vendor. It's recommended to use GetVendorWithContext instead.

func (*Client) GetVendorWithContext added in v1.4.0

func (c *Client) GetVendorWithContext(ctx context.Context, id string) (*Vendor, error)

GetVendorWithContext gets details about an existing vendor.

func (*Client) InstallAddon

func (c *Client) InstallAddon(a Addon) (*Addon, error)

InstallAddon installs an add-on for your account. It's recommended to use InstallAddonWithContext instead.

func (*Client) InstallAddonWithContext added in v1.4.0

func (c *Client) InstallAddonWithContext(ctx context.Context, a Addon) (*Addon, error)

InstallAddonWithContext installs an add-on for your account.

func (*Client) ListAbilities

func (c *Client) ListAbilities() (*ListAbilityResponse, error)

ListAbilities lists all abilities on your account. It's recommended to use ListAbilitiesWithContext instead.

func (*Client) ListAbilitiesWithContext added in v1.4.0

func (c *Client) ListAbilitiesWithContext(ctx context.Context) (*ListAbilityResponse, error)

ListAbilitiesWithContext lists all abilities on your account.

func (*Client) ListAddons

func (c *Client) ListAddons(o ListAddonOptions) (*ListAddonResponse, error)

ListAddons lists all of the add-ons installed on your account. It's recommended to use ListAddonsWithContext instead.

func (*Client) ListAddonsWithContext added in v1.4.0

func (c *Client) ListAddonsWithContext(ctx context.Context, o ListAddonOptions) (*ListAddonResponse, error)

ListAddonsWithContext lists all of the add-ons installed on your account.

func (*Client) ListAllMembers

func (c *Client) ListAllMembers(teamID string) ([]Member, error)

ListAllMembers gets all members associated with the specified team. It's recommended to use ListMembersPaginated instead.

func (*Client) ListBusinessServiceDependencies added in v1.3.0

func (c *Client) ListBusinessServiceDependencies(businessServiceID string) (*ListServiceDependencies, *http.Response, error)

ListBusinessServiceDependencies lists dependencies of a business service. It's recommended to use ListBusinessServiceDependenciesWithContext instead.

func (*Client) ListBusinessServiceDependenciesWithContext added in v1.4.0

func (c *Client) ListBusinessServiceDependenciesWithContext(ctx context.Context, businessServiceID string) (*ListServiceDependencies, error)

ListBusinessServiceDependenciesWithContext lists dependencies of a business service.

func (*Client) ListBusinessServices added in v1.3.0

ListBusinessServices lists existing business services. This method currently handles pagination of the response, so all business services should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use ListBusinessServicesPaginated instead.

func (*Client) ListBusinessServicesPaginated added in v1.4.0

func (c *Client) ListBusinessServicesPaginated(ctx context.Context, o ListBusinessServiceOptions) ([]*BusinessService, error)

ListBusinessServicesPaginated lists existing business services, automatically handling pagination and returning the full collection.

func (*Client) ListEscalationPolicies

ListEscalationPolicies lists all of the existing escalation policies. It's recommended to use ListEscalationPoliciesWithContext instead.

func (*Client) ListEscalationPoliciesWithContext added in v1.4.0

func (c *Client) ListEscalationPoliciesWithContext(ctx context.Context, o ListEscalationPoliciesOptions) (*ListEscalationPoliciesResponse, error)

ListEscalationPoliciesWithContext lists all of the existing escalation policies.

func (*Client) ListEscalationRules

func (c *Client) ListEscalationRules(escID string) (*ListEscalationRulesResponse, error)

ListEscalationRules lists all of the escalation rules for an existing escalation policy. It's recommended to use ListEscalationRulesWithContext instead.

func (*Client) ListEscalationRulesWithContext added in v1.4.0

func (c *Client) ListEscalationRulesWithContext(ctx context.Context, escID string) (*ListEscalationRulesResponse, error)

ListEscalationRulesWithContext lists all of the escalation rules for an existing escalation policy.

func (*Client) ListExtensionSchemas

func (c *Client) ListExtensionSchemas(o ListExtensionSchemaOptions) (*ListExtensionSchemaResponse, error)

ListExtensionSchemas lists all of the extension schemas. Each schema represents a specific type of outbound extension. It's recommended to use ListExtensionSchemasWithContext instead.

func (*Client) ListExtensionSchemasWithContext added in v1.4.0

func (c *Client) ListExtensionSchemasWithContext(ctx context.Context, o ListExtensionSchemaOptions) (*ListExtensionSchemaResponse, error)

ListExtensionSchemasWithContext lists all of the extension schemas. Each schema represents a specific type of outbound extension.

func (*Client) ListExtensions

func (c *Client) ListExtensions(o ListExtensionOptions) (*ListExtensionResponse, error)

ListExtensions lists the extensions from the API. It's recommended to use ListExtensionsWithContext instead.

func (*Client) ListExtensionsWithContext added in v1.4.0

func (c *Client) ListExtensionsWithContext(ctx context.Context, o ListExtensionOptions) (*ListExtensionResponse, error)

ListExtensionsWithContext lists the extensions from the API.

func (*Client) ListIncidentAlerts

func (c *Client) ListIncidentAlerts(id string) (*ListAlertsResponse, error)

ListIncidentAlerts lists existing alerts for the specified incident. It's recommended to use ListIncidentAlertsWithContext instead.

func (*Client) ListIncidentAlertsWithContext added in v1.4.0

func (c *Client) ListIncidentAlertsWithContext(ctx context.Context, id string, o ListIncidentAlertsOptions) (*ListAlertsResponse, error)

ListIncidentAlertsWithContext lists existing alerts for the specified incident. If you don't want to filter any of the results, pass in an empty ListIncidentAlertOptions.

func (*Client) ListIncidentAlertsWithOpts added in v1.2.0

func (c *Client) ListIncidentAlertsWithOpts(id string, o ListIncidentAlertsOptions) (*ListAlertsResponse, error)

ListIncidentAlertsWithOpts lists existing alerts for the specified incident. It's recommended to use ListIncidentAlertsWithContext instead.

func (*Client) ListIncidentLogEntries

ListIncidentLogEntries lists existing log entries for the specified incident. It's recommended to use ListIncidentLogEntriesWithContext instead.

func (*Client) ListIncidentLogEntriesWithContext added in v1.4.0

func (c *Client) ListIncidentLogEntriesWithContext(ctx context.Context, id string, o ListIncidentLogEntriesOptions) (*ListIncidentLogEntriesResponse, error)

ListIncidentLogEntriesWithContext lists existing log entries for the specified incident.

func (*Client) ListIncidentNotes

func (c *Client) ListIncidentNotes(id string) ([]IncidentNote, error)

ListIncidentNotes lists existing notes for the specified incident. It's recommended to use ListIncidentNotesWithContext instead.

func (*Client) ListIncidentNotesWithContext added in v1.4.0

func (c *Client) ListIncidentNotesWithContext(ctx context.Context, id string) ([]IncidentNote, error)

ListIncidentNotesWithContext lists existing notes for the specified incident.

func (*Client) ListIncidents

func (c *Client) ListIncidents(o ListIncidentsOptions) (*ListIncidentsResponse, error)

ListIncidents lists existing incidents. It's recommended to use ListIncidentsWithContext instead.

func (*Client) ListIncidentsWithContext added in v1.4.0

func (c *Client) ListIncidentsWithContext(ctx context.Context, o ListIncidentsOptions) (*ListIncidentsResponse, error)

ListIncidentsWithContext lists existing incidents.

func (*Client) ListLogEntries

func (c *Client) ListLogEntries(o ListLogEntriesOptions) (*ListLogEntryResponse, error)

ListLogEntries lists all of the incident log entries across the entire account. It's recommended to use ListLogEntriesWithContext instead.

func (*Client) ListLogEntriesWithContext added in v1.4.0

func (c *Client) ListLogEntriesWithContext(ctx context.Context, o ListLogEntriesOptions) (*ListLogEntryResponse, error)

ListLogEntriesWithContext lists all of the incident log entries across the entire account.

func (*Client) ListMaintenanceWindows

ListMaintenanceWindows lists existing maintenance windows, optionally filtered by service and/or team, or whether they are from the past, present or future. It's recommended to use ListMaintenanceWindowsWithContext instead.

func (*Client) ListMaintenanceWindowsWithContext added in v1.4.0

func (c *Client) ListMaintenanceWindowsWithContext(ctx context.Context, o ListMaintenanceWindowsOptions) (*ListMaintenanceWindowsResponse, error)

ListMaintenanceWindowsWithContext lists existing maintenance windows, optionally filtered by service and/or team, or whether they are from the past, present or future.

func (*Client) ListMembers

func (c *Client) ListMembers(teamID string, o ListMembersOptions) (*ListMembersResponse, error)

ListMembers gets the first page of users associated with the specified team. It's recommended to use ListMembersWithContext instead.

func (*Client) ListMembersPaginated added in v1.4.0

func (c *Client) ListMembersPaginated(ctx context.Context, teamID string) ([]Member, error)

ListMembersPaginated gets all members associated with the specified team.

func (*Client) ListMembersWithContext added in v1.4.0

func (c *Client) ListMembersWithContext(ctx context.Context, teamID string, o ListMembersOptions) (*ListMembersResponse, error)

ListMembersWithContext gets the first page of users associated with the specified team.

func (*Client) ListNotifications

func (c *Client) ListNotifications(o ListNotificationOptions) (*ListNotificationsResponse, error)

ListNotifications lists notifications for a given time range, optionally filtered by type (sms_notification, email_notification, phone_notification, or push_notification). It's recommended to use ListNotificationsWithContext instead.

func (*Client) ListNotificationsWithContext added in v1.4.0

func (c *Client) ListNotificationsWithContext(ctx context.Context, o ListNotificationOptions) (*ListNotificationsResponse, error)

ListNotificationsWithContext lists notifications for a given time range, optionally filtered by type (sms_notification, email_notification, phone_notification, or push_notification).

func (*Client) ListOnCallUsers

func (c *Client) ListOnCallUsers(id string, o ListOnCallUsersOptions) ([]User, error)

ListOnCallUsers lists all of the users on call in a given schedule for a given time range. It's recommended to use ListOnCallUsersWithContext instead.

func (*Client) ListOnCallUsersWithContext added in v1.4.0

func (c *Client) ListOnCallUsersWithContext(ctx context.Context, id string, o ListOnCallUsersOptions) ([]User, error)

ListOnCallUsersWithContext lists all of the users on call in a given schedule for a given time range.

func (*Client) ListOnCalls

func (c *Client) ListOnCalls(o ListOnCallOptions) (*ListOnCallsResponse, error)

ListOnCalls list the on-call entries during a given time range. It's recommended to use ListOnCallsWithContext instead.

func (*Client) ListOnCallsWithContext added in v1.4.0

func (c *Client) ListOnCallsWithContext(ctx context.Context, o ListOnCallOptions) (*ListOnCallsResponse, error)

ListOnCallsWithContext list the on-call entries during a given time range.

func (*Client) ListOverrides

func (c *Client) ListOverrides(id string, o ListOverridesOptions) (*ListOverridesResponse, error)

ListOverrides lists overrides for a given time range. It's recommended to use ListOverridesWithContext instead.

func (*Client) ListOverridesWithContext added in v1.4.0

func (c *Client) ListOverridesWithContext(ctx context.Context, id string, o ListOverridesOptions) (*ListOverridesResponse, error)

ListOverridesWithContext lists overrides for a given time range.

func (*Client) ListPriorities

func (c *Client) ListPriorities() (*Priorities, error)

ListPriorities lists existing priorities. It's recommended to use ListPrioritiesWithContext instead.

func (*Client) ListPrioritiesWithContext added in v1.4.0

func (c *Client) ListPrioritiesWithContext(ctx context.Context) (*Priorities, error)

ListPrioritiesWithContext lists existing priorities.

func (*Client) ListRulesetRules added in v1.2.0

func (c *Client) ListRulesetRules(rulesetID string) (*ListRulesetRulesResponse, error)

ListRulesetRules gets all rules for a ruleset. This method currently handles pagination of the response, so all RuleseRule should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use ListRulesetRulesPaginated instead.

func (*Client) ListRulesetRulesPaginated added in v1.4.0

func (c *Client) ListRulesetRulesPaginated(ctx context.Context, rulesetID string) ([]*RulesetRule, error)

ListRulesetRulesPaginated gets all rules for a ruleset.

func (*Client) ListRulesets added in v1.2.0

func (c *Client) ListRulesets() (*ListRulesetsResponse, error)

ListRulesets gets all rulesets. This method currently handles pagination of the response, so all rulesets should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use ListRulesetsPaginated instead.

func (*Client) ListRulesetsPaginated added in v1.4.0

func (c *Client) ListRulesetsPaginated(ctx context.Context) ([]*Ruleset, error)

ListRulesetsPaginated gets all rulesets.

func (*Client) ListSchedules

func (c *Client) ListSchedules(o ListSchedulesOptions) (*ListSchedulesResponse, error)

ListSchedules lists the on-call schedules. It's recommended to use ListSchedulesWithContext instead.

func (*Client) ListSchedulesWithContext added in v1.4.0

func (c *Client) ListSchedulesWithContext(ctx context.Context, o ListSchedulesOptions) (*ListSchedulesResponse, error)

ListSchedulesWithContext lists the on-call schedules.

func (*Client) ListServiceRulesPaginated added in v1.4.0

func (c *Client) ListServiceRulesPaginated(ctx context.Context, serviceID string) ([]ServiceRule, error)

ListServiceRulesPaginated gets all rules for a service.

func (*Client) ListServices

func (c *Client) ListServices(o ListServiceOptions) (*ListServiceResponse, error)

ListServices lists existing services. It's recommended to use ListServicesWithContext instead.

func (*Client) ListServicesPaginated added in v1.4.0

func (c *Client) ListServicesPaginated(ctx context.Context, o ListServiceOptions) ([]Service, error)

ListServicesPaginated lists existing services processing paginated responses

func (*Client) ListServicesWithContext added in v1.4.0

func (c *Client) ListServicesWithContext(ctx context.Context, o ListServiceOptions) (*ListServiceResponse, error)

ListServicesWithContext lists existing services.

func (*Client) ListTags added in v1.4.0

func (c *Client) ListTags(o ListTagOptions) (*ListTagResponse, error)

ListTags lists tags on your PagerDuty account, optionally filtered by a search query. This method currently handles pagination of the response, so all tags matched should be present.

Please note that the automatic pagination will be removed in v2 of this package, so it's recommended to use ListTagsPaginated() instead.

func (*Client) ListTagsPaginated added in v1.4.0

func (c *Client) ListTagsPaginated(ctx context.Context, o ListTagOptions) ([]*Tag, error)

ListTagsPaginated lists tags on your PagerDuty account, optionally filtered by a search query.

func (*Client) ListTeams

func (c *Client) ListTeams(o ListTeamOptions) (*ListTeamResponse, error)

ListTeams lists teams of your PagerDuty account, optionally filtered by a search query. It's recommended to use ListTeamsWithContext instead.

func (*Client) ListTeamsWithContext added in v1.4.0

func (c *Client) ListTeamsWithContext(ctx context.Context, o ListTeamOptions) (*ListTeamResponse, error)

ListTeamsWithContext lists teams of your PagerDuty account, optionally filtered by a search query.

func (*Client) ListTechnicalServiceDependencies added in v1.3.0

func (c *Client) ListTechnicalServiceDependencies(serviceID string) (*ListServiceDependencies, *http.Response, error)

ListTechnicalServiceDependencies lists dependencies of a technical service. It's recommended to use ListTechnicalServiceDependenciesWithContext instead.

func (*Client) ListTechnicalServiceDependenciesWithContext added in v1.4.0

func (c *Client) ListTechnicalServiceDependenciesWithContext(ctx context.Context, serviceID string) (*ListServiceDependencies, error)

ListTechnicalServiceDependenciesWithContext lists dependencies of a technical service.

func (*Client) ListUserContactMethods

func (c *Client) ListUserContactMethods(userID string) (*ListContactMethodsResponse, error)

ListUserContactMethods fetches contact methods of the existing user. It's recommended to use ListUserContactMethodsWithContext instead.

func (*Client) ListUserContactMethodsWithContext added in v1.4.0

func (c *Client) ListUserContactMethodsWithContext(ctx context.Context, userID string) (*ListContactMethodsResponse, error)

ListUserContactMethodsWithContext fetches contact methods of the existing user.

func (*Client) ListUserNotificationRules added in v1.2.0

func (c *Client) ListUserNotificationRules(userID string) (*ListUserNotificationRulesResponse, error)

ListUserNotificationRules fetches notification rules of the existing user.

func (*Client) ListUserNotificationRulesWithContext added in v1.4.0

func (c *Client) ListUserNotificationRulesWithContext(ctx context.Context, userID string) (*ListUserNotificationRulesResponse, error)

ListUserNotificationRulesWithContext fetches notification rules of the existing user.

func (*Client) ListUsers

func (c *Client) ListUsers(o ListUsersOptions) (*ListUsersResponse, error)

ListUsers lists users of your PagerDuty account, optionally filtered by a search query. It's recommended to use ListUsersWithContext instead.

func (*Client) ListUsersWithContext added in v1.4.0

func (c *Client) ListUsersWithContext(ctx context.Context, o ListUsersOptions) (*ListUsersResponse, error)

ListUsersWithContext lists users of your PagerDuty account, optionally filtered by a search query.

func (*Client) ListVendors

func (c *Client) ListVendors(o ListVendorOptions) (*ListVendorResponse, error)

ListVendors lists existing vendors. It's recommended to use ListVendorsWithContext instead.

func (*Client) ListVendorsWithContext added in v1.4.0

func (c *Client) ListVendorsWithContext(ctx context.Context, o ListVendorOptions) (*ListVendorResponse, error)

ListVendorsWithContext lists existing vendors.

func (*Client) ManageEvent added in v1.4.0

func (c *Client) ManageEvent(e *V2Event) (*V2EventResponse, error)

ManageEvent handles the trigger, acknowledge, and resolve methods for an event. It's recommended to use ManageEventWithContext instead.

func (*Client) ManageEventWithContext added in v1.4.0

func (c *Client) ManageEventWithContext(ctx context.Context, e *V2Event) (*V2EventResponse, error)

ManageEventWithContext handles the trigger, acknowledge, and resolve methods for an event.

func (*Client) ManageIncidentAlerts added in v1.3.0

func (c *Client) ManageIncidentAlerts(incidentID string, alerts *IncidentAlertList) (*ListAlertsResponse, *http.Response, error)

ManageIncidentAlerts allows you to manage the alerts of an incident. It's recommended to use ManageIncidentAlertsWithContext instead.

func (*Client) ManageIncidentAlertsWithContext added in v1.4.0

func (c *Client) ManageIncidentAlertsWithContext(ctx context.Context, incidentID string, alerts *IncidentAlertList) (*ListAlertsResponse, error)

ManageIncidentAlertsWithContext allows you to manage the alerts of an incident.

func (*Client) ManageIncidents

func (c *Client) ManageIncidents(from string, incidents []ManageIncidentsOptions) (*ListIncidentsResponse, error)

ManageIncidents acknowledges, resolves, escalates, or reassigns one or more incidents. It's recommended to use ManageIncidentsWithContext instead.

func (*Client) ManageIncidentsWithContext added in v1.4.0

func (c *Client) ManageIncidentsWithContext(ctx context.Context, from string, incidents []ManageIncidentsOptions) (*ListIncidentsResponse, error)

ManageIncidentsWithContext acknowledges, resolves, escalates, or reassigns one or more incidents.

func (*Client) MergeIncidents

func (c *Client) MergeIncidents(from string, id string, sourceIncidents []MergeIncidentsOptions) (*Incident, error)

MergeIncidents merges a list of source incidents into a specified incident. It's recommended to use MergeIncidentsWithContext instead.

func (*Client) MergeIncidentsWithContext added in v1.4.0

func (c *Client) MergeIncidentsWithContext(ctx context.Context, from, id string, sourceIncidents []MergeIncidentsOptions) (*Incident, error)

MergeIncidentsWithContext merges a list of source incidents into a specified incident.

func (*Client) PreviewSchedule

func (c *Client) PreviewSchedule(s Schedule, o PreviewScheduleOptions) error

PreviewSchedule previews what an on-call schedule would look like without saving it. It's recommended to use PreviewScheduleWithContext instead.

func (*Client) PreviewScheduleWithContext added in v1.4.0

func (c *Client) PreviewScheduleWithContext(ctx context.Context, s Schedule, o PreviewScheduleOptions) error

PreviewScheduleWithContext previews what an on-call schedule would look like without saving it.

func (*Client) RemoveEscalationPolicyFromTeam

func (c *Client) RemoveEscalationPolicyFromTeam(teamID, epID string) error

RemoveEscalationPolicyFromTeam removes an escalation policy from a team. It's recommended to use RemoveEscalationPolicyFromTeamWithContext instead.

func (*Client) RemoveEscalationPolicyFromTeamWithContext added in v1.4.0

func (c *Client) RemoveEscalationPolicyFromTeamWithContext(ctx context.Context, teamID, epID string) error

RemoveEscalationPolicyFromTeamWithContext removes an escalation policy from a team.

func (*Client) RemoveUserFromTeam

func (c *Client) RemoveUserFromTeam(teamID, userID string) error

RemoveUserFromTeam removes a user from a team. It's recommended to use RemoveUserFromTeamWithContext instead.

func (*Client) RemoveUserFromTeamWithContext added in v1.4.0

func (c *Client) RemoveUserFromTeamWithContext(ctx context.Context, teamID, userID string) error

RemoveUserFromTeamWithContext removes a user from a team.

func (*Client) ResponderRequest

func (c *Client) ResponderRequest(id string, o ResponderRequestOptions) (*ResponderRequestResponse, error)

ResponderRequest will submit a request to have a responder join an incident. It's recommended to use ResponderRequestWithContext instead.

func (*Client) ResponderRequestWithContext added in v1.4.0

func (c *Client) ResponderRequestWithContext(ctx context.Context, id string, o ResponderRequestOptions) (*ResponderRequestResponse, error)

ResponderRequestWithContext will submit a request to have a responder join an incident.

func (*Client) SnoozeIncident deprecated

func (c *Client) SnoozeIncident(id string, duration uint) error

SnoozeIncident sets an incident to not alert for a specified period of time.

Deprecated: please use SnoozeIncidentWithContext going forward

func (*Client) SnoozeIncidentWithContext added in v1.4.0

func (c *Client) SnoozeIncidentWithContext(ctx context.Context, id string, duration uint) (*Incident, error)

SnoozeIncidentWithContext sets an incident to not alert for a specified period of time.

func (*Client) SnoozeIncidentWithResponse

func (c *Client) SnoozeIncidentWithResponse(id string, duration uint) (*Incident, error)

SnoozeIncidentWithResponse sets an incident to not alert for a specified period of time. It's recommended to use SnoozeIncidentWithContext instead.

func (*Client) TestAbility

func (c *Client) TestAbility(ability string) error

TestAbility checks if your account has the given ability.

func (*Client) TestAbilityWithContext added in v1.4.0

func (c *Client) TestAbilityWithContext(ctx context.Context, ability string) error

TestAbilityWithContext checks if your account has the given ability.

func (*Client) UpdateAddon

func (c *Client) UpdateAddon(id string, a Addon) (*Addon, error)

UpdateAddon updates an existing add-on. It's recommended to use UpdateAddonWithContext instead.

func (*Client) UpdateAddonWithContext added in v1.4.0

func (c *Client) UpdateAddonWithContext(ctx context.Context, id string, a Addon) (*Addon, error)

UpdateAddonWithContext updates an existing add-on.

func (*Client) UpdateBusinessService added in v1.3.0

func (c *Client) UpdateBusinessService(b *BusinessService) (*BusinessService, *http.Response, error)

UpdateBusinessService updates a business_service. It's recommended to use UpdateBusinessServiceWithContext instead.

func (*Client) UpdateBusinessServiceWithContext added in v1.4.0

func (c *Client) UpdateBusinessServiceWithContext(ctx context.Context, b *BusinessService) (*BusinessService, error)

UpdateBusinessServiceWithContext updates a business_service.

func (*Client) UpdateEscalationPolicy

func (c *Client) UpdateEscalationPolicy(id string, e *EscalationPolicy) (*EscalationPolicy, error)

UpdateEscalationPolicy updates an existing escalation policy and its rules. It's recommended to use UpdateEscalationPolicyWithContext instead.

func (*Client) UpdateEscalationPolicyWithContext added in v1.4.0

func (c *Client) UpdateEscalationPolicyWithContext(ctx context.Context, id string, e EscalationPolicy) (*EscalationPolicy, error)

UpdateEscalationPolicyWithContext updates an existing escalation policy and its rules.

func (*Client) UpdateEscalationRule

func (c *Client) UpdateEscalationRule(escID string, id string, e *EscalationRule) (*EscalationRule, error)

UpdateEscalationRule updates an existing escalation rule. It's recommended to use UpdateEscalationRuleWithContext instead.

func (*Client) UpdateEscalationRuleWithContext added in v1.4.0

func (c *Client) UpdateEscalationRuleWithContext(ctx context.Context, escID string, id string, e EscalationRule) (*EscalationRule, error)

UpdateEscalationRuleWithContext updates an existing escalation rule.

func (*Client) UpdateExtension

func (c *Client) UpdateExtension(id string, e *Extension) (*Extension, error)

UpdateExtension updates an extension by its ID.

func (*Client) UpdateExtensionWithContext added in v1.4.0

func (c *Client) UpdateExtensionWithContext(ctx context.Context, id string, e *Extension) (*Extension, error)

UpdateExtensionWithContext updates an extension by its ID.

func (*Client) UpdateIntegration

func (c *Client) UpdateIntegration(serviceID string, i Integration) (*Integration, error)

UpdateIntegration updates an integration belonging to a service. It's recommended to use UpdateIntegrationWithContext instead.

func (*Client) UpdateIntegrationWithContext added in v1.4.0

func (c *Client) UpdateIntegrationWithContext(ctx context.Context, serviceID string, i Integration) (*Integration, error)

UpdateIntegrationWithContext updates an integration belonging to a service.

func (*Client) UpdateMaintenanceWindow

func (c *Client) UpdateMaintenanceWindow(m MaintenanceWindow) (*MaintenanceWindow, error)

UpdateMaintenanceWindow updates an existing maintenance window. It's recommended to use UpdateMaintenanceWindowWithContext instead.

func (*Client) UpdateMaintenanceWindowWithContext added in v1.4.0

func (c *Client) UpdateMaintenanceWindowWithContext(ctx context.Context, m MaintenanceWindow) (*MaintenanceWindow, error)

UpdateMaintenanceWindowWithContext updates an existing maintenance window.

func (*Client) UpdateRuleset added in v1.2.0

func (c *Client) UpdateRuleset(r *Ruleset) (*Ruleset, *http.Response, error)

UpdateRuleset updates a ruleset. It's recommended to use UpdateRulesetWithContext instead.

func (*Client) UpdateRulesetRule added in v1.2.0

func (c *Client) UpdateRulesetRule(rulesetID, ruleID string, r *RulesetRule) (*RulesetRule, *http.Response, error)

UpdateRulesetRule updates a rule.

func (*Client) UpdateRulesetRuleWithContext added in v1.4.0

func (c *Client) UpdateRulesetRuleWithContext(ctx context.Context, rulesetID, ruleID string, r *RulesetRule) (*RulesetRule, *http.Response, error)

UpdateRulesetRuleWithContext updates a rule.

func (*Client) UpdateRulesetWithContext added in v1.4.0

func (c *Client) UpdateRulesetWithContext(ctx context.Context, r *Ruleset) (*Ruleset, error)

UpdateRulesetWithContext updates a ruleset.

func (*Client) UpdateSchedule

func (c *Client) UpdateSchedule(id string, s Schedule) (*Schedule, error)

UpdateSchedule updates an existing on-call schedule. It's recommended to use UpdateScheduleWithContext instead.

func (*Client) UpdateScheduleWithContext added in v1.4.0

func (c *Client) UpdateScheduleWithContext(ctx context.Context, id string, s Schedule) (*Schedule, error)

UpdateScheduleWithContext updates an existing on-call schedule.

func (*Client) UpdateService

func (c *Client) UpdateService(s Service) (*Service, error)

UpdateService updates an existing service. It's recommended to use UpdateServiceWithContext instead.

func (*Client) UpdateServiceRule added in v1.4.0

func (c *Client) UpdateServiceRule(ctx context.Context, serviceID, ruleID string, rule ServiceRule) (ServiceRule, error)

UpdateServiceRule updates a service rule.

func (*Client) UpdateServiceWithContext added in v1.4.0

func (c *Client) UpdateServiceWithContext(ctx context.Context, s Service) (*Service, error)

UpdateServiceWithContext updates an existing service.

func (*Client) UpdateTeam

func (c *Client) UpdateTeam(id string, t *Team) (*Team, error)

UpdateTeam updates an existing team. It's recommended to use UpdateTeamWithContext instead.

func (*Client) UpdateTeamWithContext added in v1.4.0

func (c *Client) UpdateTeamWithContext(ctx context.Context, id string, t *Team) (*Team, error)

UpdateTeamWithContext updates an existing team.

func (*Client) UpdateUser

func (c *Client) UpdateUser(u User) (*User, error)

UpdateUser updates an existing user. It's recommended to use UpdateUserWithContext instead.

func (*Client) UpdateUserContactMethod

func (c *Client) UpdateUserContactMethod(userID string, cm ContactMethod) (*ContactMethod, error)

UpdateUserContactMethod updates an existing user. It's recommended to use UpdateUserContactMethodWithContext instead.

func (*Client) UpdateUserContactMethodWthContext added in v1.4.0

func (c *Client) UpdateUserContactMethodWthContext(ctx context.Context, userID string, cm ContactMethod) (*ContactMethod, error)

UpdateUserContactMethodWthContext updates an existing user.

func (*Client) UpdateUserNotificationRule added in v1.2.0

func (c *Client) UpdateUserNotificationRule(userID string, rule NotificationRule) (*NotificationRule, error)

UpdateUserNotificationRule updates a notification rule for a user. It's recommended to use UpdateUserNotificationRuleWithContext instead.

func (*Client) UpdateUserNotificationRuleWithContext added in v1.4.0

func (c *Client) UpdateUserNotificationRuleWithContext(ctx context.Context, userID string, rule NotificationRule) (*NotificationRule, error)

UpdateUserNotificationRuleWithContext updates a notification rule for a user.

func (*Client) UpdateUserWithContext added in v1.4.0

func (c *Client) UpdateUserWithContext(ctx context.Context, u User) (*User, error)

UpdateUserWithContext updates an existing user.

type ClientOptions added in v1.2.0

type ClientOptions func(*Client)

ClientOptions allows for options to be passed into the Client for customization

func WithAPIEndpoint added in v1.2.0

func WithAPIEndpoint(endpoint string) ClientOptions

WithAPIEndpoint allows for a custom API endpoint to be passed into the the client

func WithOAuth added in v1.2.0

func WithOAuth() ClientOptions

WithOAuth allows for an OAuth token to be passed into the the client

func WithV2EventsAPIEndpoint added in v1.4.0

func WithV2EventsAPIEndpoint(endpoint string) ClientOptions

WithV2EventsAPIEndpoint allows for a custom V2 Events API endpoint to be passed into the client

type CommonLogEntryField added in v1.3.0

type CommonLogEntryField struct {
	APIObject
	CreatedAt              string            `json:"created_at,omitempty"`
	Agent                  Agent             `json:"agent,omitempty"`
	Channel                Channel           `json:"channel,omitempty"`
	Teams                  []Team            `json:"teams,omitempty"`
	Contexts               []Context         `json:"contexts,omitempty"`
	AcknowledgementTimeout int               `json:"acknowledgement_timeout"`
	EventDetails           map[string]string `json:"event_details,omitempty"`
}

CommonLogEntryField is the list of shared log entry between Incident and LogEntry

type ConditionParameter added in v1.2.0

type ConditionParameter struct {
	Path  string `json:"path,omitempty"`
	Value string `json:"value,omitempty"`
}

ConditionParameter represents parameters in a rule condition

type ConferenceBridge added in v1.3.0

type ConferenceBridge struct {
	ConferenceNumber string `json:"conference_number,omitempty"`
	ConferenceURL    string `json:"conference_url,omitempty"`
}

ConferenceBridge is a struct for the conference_bridge object on an incident

type ContactMethod

type ContactMethod struct {
	ID             string `json:"id"`
	Type           string `json:"type"`
	Summary        string `json:"summary"`
	Self           string `json:"self"`
	Label          string `json:"label"`
	Address        string `json:"address"`
	SendShortEmail bool   `json:"send_short_email,omitempty"`
	SendHTMLEmail  bool   `json:"send_html_email,omitempty"`
	Blacklisted    bool   `json:"blacklisted,omitempty"`
	CountryCode    int    `json:"country_code,omitempty"`
	Enabled        bool   `json:"enabled,omitempty"`
	HTMLUrl        string `json:"html_url"`
}

ContactMethod is a way of contacting the user.

type Context

type Context struct {
	Alt  string
	Href string
	Src  string
	Text string
	Type string
}

Context are to be included with the trigger such as links to graphs or images.

type CreateIncidentNoteResponse

type CreateIncidentNoteResponse struct {
	IncidentNote IncidentNote `json:"note"`
}

CreateIncidentNoteResponse is returned from the API as a response to creating an incident note.

type CreateIncidentOptions

type CreateIncidentOptions struct {
	Type             string        `json:"type"`
	Title            string        `json:"title"`
	Service          *APIReference `json:"service"`
	Priority         *APIReference `json:"priority"`
	Urgency          string        `json:"urgency,omitempty"`
	IncidentKey      string        `json:"incident_key,omitempty"`
	Body             *APIDetails   `json:"body,omitempty"`
	EscalationPolicy *APIReference `json:"escalation_policy,omitempty"`
	Assignments      []Assignee    `json:"assignments,omitempty"`
}

CreateIncidentOptions is the structure used when POSTing to the CreateIncident API endpoint.

type EscalationPolicy

type EscalationPolicy struct {
	APIObject
	Name            string           `json:"name,omitempty"`
	EscalationRules []EscalationRule `json:"escalation_rules,omitempty"`
	Services        []APIObject      `json:"services,omitempty"`
	NumLoops        uint             `json:"num_loops,omitempty"`
	Teams           []APIReference   `json:"teams"`
	Description     string           `json:"description,omitempty"`
	RepeatEnabled   bool             `json:"repeat_enabled,omitempty"`
}

EscalationPolicy is a collection of escalation rules.

type EscalationRule

type EscalationRule struct {
	ID      string      `json:"id,omitempty"`
	Delay   uint        `json:"escalation_delay_in_minutes,omitempty"`
	Targets []APIObject `json:"targets"`
}

EscalationRule is a rule for an escalation policy to trigger.

type Event

type Event struct {
	ServiceKey  string        `json:"service_key"`
	Type        string        `json:"event_type"`
	IncidentKey string        `json:"incident_key,omitempty"`
	Description string        `json:"description"`
	Client      string        `json:"client,omitempty"`
	ClientURL   string        `json:"client_url,omitempty"`
	Details     interface{}   `json:"details,omitempty"`
	Contexts    []interface{} `json:"contexts,omitempty"`
}

Event stores data for problem reporting, acknowledgement, and resolution.

type EventResponse

type EventResponse struct {
	Status      string `json:"status"`
	Message     string `json:"message"`
	IncidentKey string `json:"incident_key"`
	HttpStatus  int
}

EventResponse is the data returned from the CreateEvent API endpoint.

func CreateEvent

func CreateEvent(e Event) (*EventResponse, error)

CreateEvent sends PagerDuty an event to trigger, acknowledge, or resolve a problem. If you need to provide a custom HTTP client, please use CreateEventWithHTTPClient.

func CreateEventWithHTTPClient

func CreateEventWithHTTPClient(e Event, client HTTPClient) (*EventResponse, error)

CreateEventWithHTTPClient sends PagerDuty an event to trigger, acknowledge, or resolve a problem. This function accepts a custom HTTP Client, if the default one used by this package doesn't fit your needs. If you don't need a custom HTTP client, please use CreateEvent instead.

type Extension

type Extension struct {
	APIObject
	Name             string      `json:"name"`
	EndpointURL      string      `json:"endpoint_url,omitempty"`
	ExtensionObjects []APIObject `json:"extension_objects"`
	ExtensionSchema  APIObject   `json:"extension_schema"`
	Config           interface{} `json:"config"`
}

Extension represents a single PagerDuty extension. These are addtional features to be used as part of the incident management process.

type ExtensionSchema

type ExtensionSchema struct {
	APIObject
	IconURL     string   `json:"icon_url"`
	LogoURL     string   `json:"logo_url"`
	Label       string   `json:"label"`
	Key         string   `json:"key"`
	Description string   `json:"description"`
	GuideURL    string   `json:"guide_url"`
	SendTypes   []string `json:"send_types"`
	URL         string   `json:"url"`
}

ExtensionSchema represnts the object presented by the API for each extension schema.

type FirstTriggerLogEntry added in v1.3.0

type FirstTriggerLogEntry struct {
	CommonLogEntryField
	Incident APIObject `json:"incident,omitempty"`
}

FirstTriggerLogEntry is the first LogEntry

type GetCurrentUserOptions

type GetCurrentUserOptions struct {
	Includes []string `url:"include,omitempty,brackets"`
}

GetCurrentUserOptions is the data structure used when calling the GetCurrentUser API endpoint.

type GetEscalationPolicyOptions

type GetEscalationPolicyOptions struct {
	Includes []string `url:"include,omitempty,brackets"`
}

GetEscalationPolicyOptions is the data structure used when calling the GetEscalationPolicy API endpoint.

type GetEscalationRuleOptions

type GetEscalationRuleOptions struct {
	Includes []string `url:"include,omitempty,brackets"`
}

GetEscalationRuleOptions is the data structure used when calling the GetEscalationRule API endpoint.

type GetIntegrationOptions

type GetIntegrationOptions struct {
	Includes []string `url:"include,omitempty,brackets"`
}

GetIntegrationOptions is the data structure used when calling the GetIntegration API endpoint.

type GetLogEntryOptions

type GetLogEntryOptions struct {
	TimeZone string   `url:"time_zone,omitempty"`
	Includes []string `url:"include,omitempty,brackets"`
}

GetLogEntryOptions is the data structure used when calling the GetLogEntry API endpoint.

type GetMaintenanceWindowOptions

type GetMaintenanceWindowOptions struct {
	Includes []string `url:"include,omitempty,brackets"`
}

GetMaintenanceWindowOptions is the data structure used when calling the GetMaintenanceWindow API endpoint.

type GetScheduleOptions

type GetScheduleOptions struct {
	APIListObject
	TimeZone string `url:"time_zone,omitempty"`
	Since    string `url:"since,omitempty"`
	Until    string `url:"until,omitempty"`
}

GetScheduleOptions is the data structure used when calling the GetSchedule API endpoint.

type GetServiceOptions

type GetServiceOptions struct {
	Includes []string `url:"include,brackets,omitempty"`
}

GetServiceOptions is the data structure used when calling the GetService API endpoint.

type GetUserOptions

type GetUserOptions struct {
	Includes []string `url:"include,omitempty,brackets"`
}

GetUserOptions is the data structure used when calling the GetUser API endpoint.

type HTTPClient

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

HTTPClient is an interface which declares the functionality we need from an HTTP client. This is to allow consumers to provide their own HTTP client as needed, without restricting them to only using *http.Client.

type Incident

type Incident struct {
	APIObject
	IncidentNumber       uint                 `json:"incident_number,omitempty"`
	Title                string               `json:"title,omitempty"`
	Description          string               `json:"description,omitempty"`
	CreatedAt            string               `json:"created_at,omitempty"`
	PendingActions       []PendingAction      `json:"pending_actions,omitempty"`
	IncidentKey          string               `json:"incident_key,omitempty"`
	Service              APIObject            `json:"service,omitempty"`
	Assignments          []Assignment         `json:"assignments,omitempty"`
	Acknowledgements     []Acknowledgement    `json:"acknowledgements,omitempty"`
	LastStatusChangeAt   string               `json:"last_status_change_at,omitempty"`
	LastStatusChangeBy   APIObject            `json:"last_status_change_by,omitempty"`
	FirstTriggerLogEntry FirstTriggerLogEntry `json:"first_trigger_log_entry,omitempty"`
	EscalationPolicy     APIObject            `json:"escalation_policy,omitempty"`
	Teams                []APIObject          `json:"teams,omitempty"`
	Priority             *Priority            `json:"priority,omitempty"`
	Urgency              string               `json:"urgency,omitempty"`
	Status               string               `json:"status,omitempty"`
	Id                   string               `json:"id,omitempty"`
	ResolveReason        ResolveReason        `json:"resolve_reason,omitempty"`
	AlertCounts          AlertCounts          `json:"alert_counts,omitempty"`
	Body                 IncidentBody         `json:"body,omitempty"`
	IsMergeable          bool                 `json:"is_mergeable,omitempty"`
	ConferenceBridge     *ConferenceBridge    `json:"conference_bridge,omitempty"`
}

Incident is a normalized, de-duplicated event generated by a PagerDuty integration.

type IncidentAlert

type IncidentAlert struct {
	APIObject
	CreatedAt   string                 `json:"created_at,omitempty"`
	Status      string                 `json:"status,omitempty"`
	AlertKey    string                 `json:"alert_key,omitempty"`
	Service     APIObject              `json:"service,omitempty"`
	Body        map[string]interface{} `json:"body,omitempty"`
	Incident    APIReference           `json:"incident,omitempty"`
	Suppressed  bool                   `json:"suppressed,omitempty"`
	Severity    string                 `json:"severity,omitempty"`
	Integration APIObject              `json:"integration,omitempty"`
}

IncidentAlert is a alert for the specified incident.

type IncidentAlertList added in v1.3.0

type IncidentAlertList struct {
	Alerts []IncidentAlert `json:"alerts,omitempty"`
}

IncidentAlertList is the generic structure of a list of alerts

type IncidentAlertResponse added in v1.3.0

type IncidentAlertResponse struct {
	IncidentAlert *IncidentAlert `json:"alert,omitempty"`
}

IncidentAlertResponse is the response of a sincle incident alert

type IncidentBody

type IncidentBody struct {
	Type    string `json:"type,omitempty"`
	Details string `json:"details,omitempty"`
}

IncidentBody is the datastructure containing data describing the incident.

type IncidentDetails added in v1.2.0

type IncidentDetails struct {
	APIObject
	IncidentNumber       int               `json:"incident_number"`
	Title                string            `json:"title"`
	CreatedAt            time.Time         `json:"created_at"`
	Status               string            `json:"status"`
	IncidentKey          *string           `json:"incident_key"`
	PendingActions       []PendingAction   `json:"pending_actions"`
	Service              Service           `json:"service"`
	Assignments          []Assignment      `json:"assignments"`
	Acknowledgements     []Acknowledgement `json:"acknowledgements"`
	LastStatusChangeAt   time.Time         `json:"last_status_change_at"`
	LastStatusChangeBy   APIObject         `json:"last_status_change_by"`
	FirstTriggerLogEntry APIObject         `json:"first_trigger_log_entry"`
	EscalationPolicy     APIObject         `json:"escalation_policy"`
	Teams                []APIObject       `json:"teams"`
	Priority             Priority          `json:"priority"`
	Urgency              string            `json:"urgency"`
	ResolveReason        *string           `json:"resolve_reason"`
	AlertCounts          AlertCounts       `json:"alert_counts"`
	Metadata             interface{}       `json:"metadata"`
	Description          string            `json:"description"`
	Alerts               []IncidentAlert   `json:"alerts,omitempty"`
}

IncidentDetails contains a representation of the incident associated with the action that caused this webhook message

type IncidentNote

type IncidentNote struct {
	ID        string    `json:"id,omitempty"`
	User      APIObject `json:"user,omitempty"`
	Content   string    `json:"content,omitempty"`
	CreatedAt string    `json:"created_at,omitempty"`
}

IncidentNote is a note for the specified incident.

type IncidentResponders

type IncidentResponders struct {
	State       string    `json:"state"`
	User        APIObject `json:"user"`
	Incident    APIObject `json:"incident"`
	UpdatedAt   string    `json:"updated_at"`
	Message     string    `json:"message"`
	Requester   APIObject `json:"requester"`
	RequestedAt string    `json:"requested_at"`
}

IncidentResponders contains details about responders to an incident.

type IncidentUrgencyRule

type IncidentUrgencyRule struct {
	Type                string               `json:"type,omitempty"`
	Urgency             string               `json:"urgency,omitempty"`
	DuringSupportHours  *IncidentUrgencyType `json:"during_support_hours,omitempty"`
	OutsideSupportHours *IncidentUrgencyType `json:"outside_support_hours,omitempty"`
}

IncidentUrgencyRule is the default urgency for new incidents.

type IncidentUrgencyType

type IncidentUrgencyType struct {
	Type    string `json:"type,omitempty"`
	Urgency string `json:"urgency,omitempty"`
}

IncidentUrgencyType are the incidents urgency during or outside support hours.

type InlineModel

type InlineModel struct {
	Type string `json:"type,omitempty"`
	Name string `json:"name,omitempty"`
}

InlineModel represents when a scheduled action will occur.

type Integration

type Integration struct {
	APIObject
	Name             string     `json:"name,omitempty"`
	Service          *APIObject `json:"service,omitempty"`
	CreatedAt        string     `json:"created_at,omitempty"`
	Vendor           *APIObject `json:"vendor,omitempty"`
	Type             string     `json:"type,omitempty"`
	IntegrationKey   string     `json:"integration_key,omitempty"`
	IntegrationEmail string     `json:"integration_email,omitempty"`
}

Integration is an endpoint (like Nagios, email, or an API call) that generates events, which are normalized and de-duplicated by PagerDuty to create incidents.

type ListAbilityResponse

type ListAbilityResponse struct {
	Abilities []string `json:"abilities"`
}

ListAbilityResponse is the response when calling the ListAbility API endpoint.

type ListAddonOptions

type ListAddonOptions struct {
	APIListObject
	Includes   []string `url:"include,omitempty,brackets"`
	ServiceIDs []string `url:"service_ids,omitempty,brackets"`
	Filter     string   `url:"filter,omitempty"`
}

ListAddonOptions are the options available when calling the ListAddons API endpoint.

type ListAddonResponse

type ListAddonResponse struct {
	APIListObject
	Addons []Addon `json:"addons"`
}

ListAddonResponse is the response when calling the ListAddons API endpoint.

type ListAlertsResponse

type ListAlertsResponse struct {
	APIListObject
	Alerts []IncidentAlert `json:"alerts,omitempty"`
}

ListAlertsResponse is the response structure when calling the ListAlert API endpoint.

type ListBusinessServiceOptions added in v1.3.0

type ListBusinessServiceOptions struct {
	APIListObject
}

ListBusinessServiceOptions is the data structure used when calling the ListBusinessServices API endpoint.

type ListBusinessServicesResponse added in v1.3.0

type ListBusinessServicesResponse struct {
	Total            uint               `json:"total,omitempty"`
	BusinessServices []*BusinessService `json:"business_services,omitempty"`
	Offset           uint               `json:"offset,omitempty"`
	More             bool               `json:"more,omitempty"`
	Limit            uint               `json:"limit,omitempty"`
}

ListBusinessServicesResponse represents a list response of business services.

type ListContactMethodsResponse

type ListContactMethodsResponse struct {
	APIListObject
	ContactMethods []ContactMethod `json:"contact_methods"`
}

ListContactMethodsResponse is the data structure returned from calling the GetUserContactMethod API endpoint.

type ListEPResponse added in v1.4.0

type ListEPResponse struct {
	APIListObject
	EscalationPolicies []*APIObject `json:"escalation_policies,omitempty"`
}

ListEPResponse is the structure used to list escalation policies assigned a given tag

type ListEscalationPoliciesOptions

type ListEscalationPoliciesOptions struct {
	APIListObject
	Query    string   `url:"query,omitempty"`
	UserIDs  []string `url:"user_ids,omitempty,brackets"`
	TeamIDs  []string `url:"team_ids,omitempty,brackets"`
	Includes []string `url:"include,omitempty,brackets"`
	SortBy   string   `url:"sort_by,omitempty"`
}

ListEscalationPoliciesOptions is the data structure used when calling the ListEscalationPolicies API endpoint.

type ListEscalationPoliciesResponse

type ListEscalationPoliciesResponse struct {
	APIListObject
	EscalationPolicies []EscalationPolicy `json:"escalation_policies"`
}

ListEscalationPoliciesResponse is the data structure returned from calling the ListEscalationPolicies API endpoint.

type ListEscalationRulesResponse

type ListEscalationRulesResponse struct {
	APIListObject
	EscalationRules []EscalationRule `json:"escalation_rules"`
}

ListEscalationRulesResponse represents the data structure returned when calling the ListEscalationRules API endpoint.

type ListExtensionOptions

type ListExtensionOptions struct {
	APIListObject
	ExtensionObjectID string `url:"extension_object_id,omitempty"`
	ExtensionSchemaID string `url:"extension_schema_id,omitempty"`
	Query             string `url:"query,omitempty"`
}

ListExtensionOptions are the options to use when listing extensions.

type ListExtensionResponse

type ListExtensionResponse struct {
	APIListObject
	Extensions []Extension `json:"extensions"`
}

ListExtensionResponse represents the single response from the PagerDuty API when listing extensions.

type ListExtensionSchemaOptions

type ListExtensionSchemaOptions struct {
	APIListObject
	Query string `url:"query,omitempty"`
}

ListExtensionSchemaOptions are the options to send with the ListExtensionSchema reques(s).

type ListExtensionSchemaResponse

type ListExtensionSchemaResponse struct {
	APIListObject
	ExtensionSchemas []ExtensionSchema `json:"extension_schemas"`
}

ListExtensionSchemaResponse is the object presented in response to the request to list all extension schemas.

type ListIncidentAlertsOptions added in v1.2.0

type ListIncidentAlertsOptions struct {
	APIListObject
	Statuses []string `url:"statuses,omitempty,brackets"`
	SortBy   string   `url:"sort_by,omitempty"`
	Includes []string `url:"include,omitempty,brackets"`
}

ListIncidentAlertsOptions is the structure used when passing parameters to the ListIncidentAlerts API endpoint.

type ListIncidentLogEntriesOptions

type ListIncidentLogEntriesOptions struct {
	APIListObject
	Includes   []string `url:"include,omitempty,brackets"`
	IsOverview bool     `url:"is_overview,omitempty"`
	TimeZone   string   `url:"time_zone,omitempty"`
	Since      string   `url:"since,omitempty"`
	Until      string   `url:"until,omitempty"`
}

ListIncidentLogEntriesOptions is the structure used when passing parameters to the ListIncidentLogEntries API endpoint.

type ListIncidentLogEntriesResponse

type ListIncidentLogEntriesResponse struct {
	APIListObject
	LogEntries []LogEntry `json:"log_entries,omitempty"`
}

ListIncidentLogEntriesResponse is the response structure when calling the ListIncidentLogEntries API endpoint.

type ListIncidentsOptions

type ListIncidentsOptions struct {
	APIListObject
	Since       string   `url:"since,omitempty"`
	Until       string   `url:"until,omitempty"`
	DateRange   string   `url:"date_range,omitempty"`
	Statuses    []string `url:"statuses,omitempty,brackets"`
	IncidentKey string   `url:"incident_key,omitempty"`
	ServiceIDs  []string `url:"service_ids,omitempty,brackets"`
	TeamIDs     []string `url:"team_ids,omitempty,brackets"`
	UserIDs     []string `url:"user_ids,omitempty,brackets"`
	Urgencies   []string `url:"urgencies,omitempty,brackets"`
	TimeZone    string   `url:"time_zone,omitempty"`
	SortBy      string   `url:"sort_by,omitempty"`
	Includes    []string `url:"include,omitempty,brackets"`
}

ListIncidentsOptions is the structure used when passing parameters to the ListIncident API endpoint.

type ListIncidentsResponse

type ListIncidentsResponse struct {
	APIListObject
	Incidents []Incident `json:"incidents,omitempty"`
}

ListIncidentsResponse is the response structure when calling the ListIncident API endpoint.

type ListLogEntriesOptions

type ListLogEntriesOptions struct {
	APIListObject
	TimeZone   string   `url:"time_zone,omitempty"`
	Since      string   `url:"since,omitempty"`
	Until      string   `url:"until,omitempty"`
	IsOverview bool     `url:"is_overview,omitempty"`
	Includes   []string `url:"include,omitempty,brackets"`
}

ListLogEntriesOptions is the data structure used when calling the ListLogEntry API endpoint.

type ListLogEntryResponse

type ListLogEntryResponse struct {
	APIListObject
	LogEntries []LogEntry `json:"log_entries"`
}

ListLogEntryResponse is the response data when calling the ListLogEntry API endpoint.

type ListMaintenanceWindowsOptions

type ListMaintenanceWindowsOptions struct {
	APIListObject
	Query      string   `url:"query,omitempty"`
	Includes   []string `url:"include,omitempty,brackets"`
	TeamIDs    []string `url:"team_ids,omitempty,brackets"`
	ServiceIDs []string `url:"service_ids,omitempty,brackets"`
	Filter     string   `url:"filter,omitempty,brackets"`
}

ListMaintenanceWindowsOptions is the data structure used when calling the ListMaintenanceWindows API endpoint.

type ListMaintenanceWindowsResponse

type ListMaintenanceWindowsResponse struct {
	APIListObject
	MaintenanceWindows []MaintenanceWindow `json:"maintenance_windows"`
}

ListMaintenanceWindowsResponse is the data structur returned from calling the ListMaintenanceWindows API endpoint.

type ListMembersOptions

type ListMembersOptions struct {
	APIListObject
}

ListMembersOptions are the optional parameters for a members request.

type ListMembersResponse

type ListMembersResponse struct {
	APIListObject
	Members []Member `json:"members"`
}

ListMembersResponse is the response from the members endpoint.

type ListNotificationOptions

type ListNotificationOptions struct {
	APIListObject
	TimeZone string   `url:"time_zone,omitempty"`
	Since    string   `url:"since,omitempty"`
	Until    string   `url:"until,omitempty"`
	Filter   string   `url:"filter,omitempty"`
	Includes []string `url:"include,omitempty"`
}

ListNotificationOptions is the data structure used when calling the ListNotifications API endpoint.

type ListNotificationsResponse

type ListNotificationsResponse struct {
	APIListObject
	Notifications []Notification
}

ListNotificationsResponse is the data structure returned from the ListNotifications API endpoint.

type ListOnCallOptions

type ListOnCallOptions struct {
	APIListObject
	TimeZone            string   `url:"time_zone,omitempty"`
	Includes            []string `url:"include,omitempty,brackets"`
	UserIDs             []string `url:"user_ids,omitempty,brackets"`
	EscalationPolicyIDs []string `url:"escalation_policy_ids,omitempty,brackets"`
	ScheduleIDs         []string `url:"schedule_ids,omitempty,brackets"`
	Since               string   `url:"since,omitempty"`
	Until               string   `url:"until,omitempty"`
	Earliest            bool     `url:"earliest,omitempty"`
}

ListOnCallOptions is the data structure used when calling the ListOnCalls API endpoint.

type ListOnCallUsersOptions

type ListOnCallUsersOptions struct {
	APIListObject
	Since string `url:"since,omitempty"`
	Until string `url:"until,omitempty"`
}

ListOnCallUsersOptions is the data structure used when calling the ListOnCallUsers API endpoint.

type ListOnCallsResponse

type ListOnCallsResponse struct {
	APIListObject
	OnCalls []OnCall `json:"oncalls"`
}

ListOnCallsResponse is the data structure returned from calling the ListOnCalls API endpoint.

type ListOverridesOptions

type ListOverridesOptions struct {
	APIListObject
	Since    string `url:"since,omitempty"`
	Until    string `url:"until,omitempty"`
	Editable bool   `url:"editable,omitempty"`
	Overflow bool   `url:"overflow,omitempty"`
}

ListOverridesOptions is the data structure used when calling the ListOverrides API endpoint.

type ListOverridesResponse

type ListOverridesResponse struct {
	APIListObject
	Overrides []Override `json:"overrides,omitempty"`
}

ListOverridesResponse is the data structure returned from calling the ListOverrides API endpoint.

type ListRulesetRulesResponse added in v1.2.0

type ListRulesetRulesResponse struct {
	Total  uint           `json:"total,omitempty"`
	Rules  []*RulesetRule `json:"rules,omitempty"`
	Offset uint           `json:"offset,omitempty"`
	More   bool           `json:"more,omitempty"`
	Limit  uint           `json:"limit,omitempty"`
}

ListRulesetRulesResponse represents a list of rules in a ruleset

type ListRulesetsResponse added in v1.2.0

type ListRulesetsResponse struct {
	Total    uint       `json:"total,omitempty"`
	Rulesets []*Ruleset `json:"rulesets,omitempty"`
	Offset   uint       `json:"offset,omitempty"`
	More     bool       `json:"more,omitempty"`
	Limit    uint       `json:"limit,omitempty"`
}

ListRulesetsResponse represents a list response of rulesets.

type ListSchedulesOptions

type ListSchedulesOptions struct {
	APIListObject
	Query string `url:"query,omitempty"`
}

ListSchedulesOptions is the data structure used when calling the ListSchedules API endpoint.

type ListSchedulesResponse

type ListSchedulesResponse struct {
	APIListObject
	Schedules []Schedule `json:"schedules"`
}

ListSchedulesResponse is the data structure returned from calling the ListSchedules API endpoint.

type ListServiceDependencies added in v1.3.0

type ListServiceDependencies struct {
	Relationships []*ServiceDependency `json:"relationships,omitempty"`
}

ListServiceDependencies represents a list of dependencies for a service

type ListServiceOptions

type ListServiceOptions struct {
	APIListObject
	TeamIDs  []string `url:"team_ids,omitempty,brackets"`
	TimeZone string   `url:"time_zone,omitempty"`
	SortBy   string   `url:"sort_by,omitempty"`
	Query    string   `url:"query,omitempty"`
	Includes []string `url:"include,omitempty,brackets"`
}

ListServiceOptions is the data structure used when calling the ListServices API endpoint.

type ListServiceResponse

type ListServiceResponse struct {
	APIListObject
	Services []Service
}

ListServiceResponse is the data structure returned from calling the ListServices API endpoint.

type ListServiceRulesResponse added in v1.4.0

type ListServiceRulesResponse struct {
	Offset uint          `json:"offset,omitempty"`
	Limit  uint          `json:"limit,omitempty"`
	More   bool          `json:"more,omitempty"`
	Total  uint          `json:"total,omitempty"`
	Rules  []ServiceRule `json:"rules,omitempty"`
}

ListServiceRulesResponse represents a list of rules in a service

type ListTagOptions added in v1.4.0

type ListTagOptions struct {
	APIListObject
	Query string `url:"query,omitempty"`
}

ListTagOptions are the input parameters used when calling the ListTags API endpoint.

type ListTagResponse added in v1.4.0

type ListTagResponse struct {
	APIListObject
	Tags []*Tag `json:"tags"`
}

ListTagResponse is the structure used when calling the ListTags API endpoint.

type ListTeamOptions

type ListTeamOptions struct {
	APIListObject
	Query string `url:"query,omitempty"`
}

ListTeamOptions are the input parameters used when calling the ListTeams API endpoint.

type ListTeamResponse

type ListTeamResponse struct {
	APIListObject
	Teams []Team
}

ListTeamResponse is the structure used when calling the ListTeams API endpoint.

type ListTeamsForTagResponse added in v1.4.0

type ListTeamsForTagResponse struct {
	APIListObject
	Teams []*APIObject `json:"teams,omitempty"`
}

ListTeamsForTagResponse is the structure used to list teams assigned a given tag

type ListUserNotificationRulesResponse added in v1.2.0

type ListUserNotificationRulesResponse struct {
	APIListObject
	NotificationRules []NotificationRule `json:"notification_rules"`
}

ListUserNotificationRulesResponse the data structure returned from calling the ListNotificationRules API endpoint.

type ListUserResponse added in v1.4.0

type ListUserResponse struct {
	APIListObject
	Users []*APIObject `json:"users,omitempty"`
}

ListUserResponse is the structure used to list users assigned a given tag

type ListUsersOptions

type ListUsersOptions struct {
	APIListObject
	Query    string   `url:"query,omitempty"`
	TeamIDs  []string `url:"team_ids,omitempty,brackets"`
	Includes []string `url:"include,omitempty,brackets"`
}

ListUsersOptions is the data structure used when calling the ListUsers API endpoint.

type ListUsersResponse

type ListUsersResponse struct {
	APIListObject
	Users []User
}

ListUsersResponse is the data structure returned from calling the ListUsers API endpoint.

type ListVendorOptions

type ListVendorOptions struct {
	APIListObject
	Query string `url:"query,omitempty"`
}

ListVendorOptions is the data structure used when calling the ListVendors API endpoint.

type ListVendorResponse

type ListVendorResponse struct {
	APIListObject
	Vendors []Vendor
}

ListVendorResponse is the data structure returned from calling the ListVendors API endpoint.

type LogEntry

type LogEntry struct {
	CommonLogEntryField
	Incident Incident `json:"incident"`
}

LogEntry is a list of all of the events that happened to an incident.

type MaintenanceWindow

type MaintenanceWindow struct {
	APIObject
	SequenceNumber uint            `json:"sequence_number,omitempty"`
	StartTime      string          `json:"start_time"`
	EndTime        string          `json:"end_time"`
	Description    string          `json:"description"`
	Services       []APIObject     `json:"services"`
	Teams          []APIListObject `json:"teams"`
	CreatedBy      APIListObject   `json:"created_by"`
}

MaintenanceWindow is used to temporarily disable one or more services for a set period of time.

type ManageIncidentsOptions

type ManageIncidentsOptions struct {
	ID               string        `json:"id"`
	Type             string        `json:"type"`
	Status           string        `json:"status,omitempty"`
	Priority         *APIReference `json:"priority,omitempty"`
	Assignments      []Assignee    `json:"assignments,omitempty"`
	EscalationPolicy *APIReference `json:"escalation_policy,omitempty"`
	Resolution       string        `json:"resolution,omitempty"`
}

ManageIncidentsOptions is the structure used when PUTing updates to incidents to the ManageIncidents func

type Member

type Member struct {
	APIObject struct {
		APIObject
	} `json:"user"`
	Role string `json:"role"`
}

Member is a team member.

type MergeIncidentsOptions

type MergeIncidentsOptions struct {
	ID   string `json:"id"`
	Type string `json:"type"`
}

MergeIncidentsOptions is the structure used when merging incidents with MergeIncidents func

type Notification

type Notification struct {
	ID        string `json:"id"`
	Type      string
	StartedAt string `json:"started_at"`
	Address   string
	User      APIObject
}

Notification is a message containing the details of the incident.

type NotificationRule

type NotificationRule struct {
	ID                  string        `json:"id"`
	StartDelayInMinutes uint          `json:"start_delay_in_minutes"`
	CreatedAt           string        `json:"created_at"`
	ContactMethod       ContactMethod `json:"contact_method"`
	Urgency             string        `json:"urgency"`
	Type                string        `json:"type"`
}

NotificationRule is a rule for notifying the user.

type NullAPIErrorObject added in v1.4.0

type NullAPIErrorObject struct {
	Valid       bool
	ErrorObject APIErrorObject
}

NullAPIErrorObject is a wrapper around the APIErrorObject type. If the Valid field is true, the API response included a structured error JSON object. This structured object is then set on the ErrorObject field.

While the PagerDuty REST API is documented to always return the error object, we assume it's possible in exceptional failure modes for this to be omitted. As such, this wrapper type provides us a way to check if the object was provided while avoiding consumer accidentally missing a nil pointer check, thus crashing their whole program.

func (*NullAPIErrorObject) UnmarshalJSON added in v1.4.0

func (n *NullAPIErrorObject) UnmarshalJSON(data []byte) error

UnmarshalJSON satisfies encoding/json.Unmarshaler

type OnCall

type OnCall struct {
	User             User             `json:"user,omitempty"`
	Schedule         Schedule         `json:"schedule,omitempty"`
	EscalationPolicy EscalationPolicy `json:"escalation_policy,omitempty"`
	EscalationLevel  uint             `json:"escalation_level,omitempty"`
	Start            string           `json:"start,omitempty"`
	End              string           `json:"end,omitempty"`
}

OnCall represents a contiguous unit of time for which a user will be on call for a given escalation policy and escalation rule.

type Override

type Override struct {
	ID    string    `json:"id,omitempty"`
	Start string    `json:"start,omitempty"`
	End   string    `json:"end,omitempty"`
	User  APIObject `json:"user,omitempty"`
}

Override are any schedule layers from the override layer.

type PendingAction

type PendingAction struct {
	Type string `json:"type,omitempty"`
	At   string `json:"at,omitempty"`
}

PendingAction is the data structure for any pending actions on an incident.

type PreviewScheduleOptions

type PreviewScheduleOptions struct {
	APIListObject
	Since    string `url:"since,omitempty"`
	Until    string `url:"until,omitempty"`
	Overflow bool   `url:"overflow,omitempty"`
}

PreviewScheduleOptions is the data structure used when calling the PreviewSchedule API endpoint.

type Priorities

type Priorities struct {
	APIListObject
	Priorities []PriorityProperty `json:"priorities"`
}

Priorities repreents the API response from PagerDuty when listing the configured priorities.

type Priority

type Priority struct {
	APIObject
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
}

Priority is the data structure describing the priority of an incident.

type PriorityProperty

type PriorityProperty struct {
	APIObject
	Name        string `json:"name"`
	Description string `json:"description"`
}

PriorityProperty is a single priorty object returned from the Priorities endpoint

type RenderedScheduleEntry

type RenderedScheduleEntry struct {
	Start string    `json:"start,omitempty"`
	End   string    `json:"end,omitempty"`
	User  APIObject `json:"user,omitempty"`
}

RenderedScheduleEntry represents the computed set of schedule layer entries that put users on call for a schedule, and cannot be modified directly.

type ResolveReason

type ResolveReason struct {
	Type     string    `json:"type,omitempty"`
	Incident APIObject `json:"incident"`
}

ResolveReason is the data structure describing the reason an incident was resolved

type ResponderRequest

type ResponderRequest struct {
	Incident    Incident                `json:"incident"`
	Requester   User                    `json:"requester,omitempty"`
	RequestedAt string                  `json:"request_at,omitempty"`
	Message     string                  `json:"message,omitempty"`
	Targets     ResponderRequestTargets `json:"responder_request_targets"`
}

ResponderRequest contains the API structure for an incident responder request.

type ResponderRequestOptions

type ResponderRequestOptions struct {
	From        string                   `json:"-"`
	Message     string                   `json:"message"`
	RequesterID string                   `json:"requester_id"`
	Targets     []ResponderRequestTarget `json:"responder_request_targets"`
}

ResponderRequestOptions defines the input options for the Create Responder function.

type ResponderRequestResponse

type ResponderRequestResponse struct {
	ResponderRequest ResponderRequest `json:"responder_request"`
}

ResponderRequestResponse is the response from the API when requesting someone respond to an incident.

type ResponderRequestTarget

type ResponderRequestTarget struct {
	APIObject
	Responders IncidentResponders `json:"incident_responders"`
}

ResponderRequestTarget specifies an individual target for the responder request.

type ResponderRequestTargets

type ResponderRequestTargets struct {
	Target ResponderRequestTarget `json:"responder_request_target"`
}

ResponderRequestTargets is a wrapper for a ResponderRequestTarget.

type Restriction

type Restriction struct {
	Type            string `json:"type,omitempty"`
	StartTimeOfDay  string `json:"start_time_of_day,omitempty"`
	StartDayOfWeek  uint   `json:"start_day_of_week,omitempty"`
	DurationSeconds uint   `json:"duration_seconds,omitempty"`
}

Restriction limits on-call responsibility for a layer to certain times of the day or week.

type RuleActionExtraction added in v1.2.0

type RuleActionExtraction struct {
	Target string `json:"target,omitempty"`
	Source string `json:"source,omitempty"`
	Regex  string `json:"regex,omitempty"`
}

RuleActionExtraction represents a rule extraction action object

type RuleActionParameter added in v1.2.0

type RuleActionParameter struct {
	Value string `json:"value,omitempty"`
}

RuleActionParameter represents a generic parameter object on a rule action

type RuleActionSuppress added in v1.2.0

type RuleActionSuppress struct {
	Value               bool   `json:"value,omitempty"`
	ThresholdValue      int    `json:"threshold_value,omitempty"`
	ThresholdTimeUnit   string `json:"threshold_time_unit,omitempty"`
	ThresholdTimeAmount int    `json:"threshold_time_amount,omitempty"`
}

RuleActionSuppress represents a rule suppress action object

type RuleActionSuspend added in v1.4.0

type RuleActionSuspend struct {
	Value *bool `json:"value,omitempty"`
}

RuleActionSuspend represents a rule suspend action object

type RuleActions added in v1.2.0

type RuleActions struct {
	Annotate    *RuleActionParameter    `json:"annotate,omitempty"`
	EventAction *RuleActionParameter    `json:"event_action,omitempty"`
	Extractions []*RuleActionExtraction `json:"extractions,omitempty"`
	Priority    *RuleActionParameter    `json:"priority,omitempty"`
	Severity    *RuleActionParameter    `json:"severity,omitempty"`
	Suppress    *RuleActionSuppress     `json:"suppress,omitempty"`
	Suspend     *RuleActionSuspend      `json:"suspend,omitempty"`
	Route       *RuleActionParameter    `json:"route"`
}

RuleActions represents a rule action

type RuleConditions added in v1.2.0

type RuleConditions struct {
	Operator          string              `json:"operator,omitempty"`
	RuleSubconditions []*RuleSubcondition `json:"subconditions,omitempty"`
}

RuleConditions represents the conditions field for a Ruleset

type RuleSubcondition added in v1.2.0

type RuleSubcondition struct {
	Operator   string              `json:"operator,omitempty"`
	Parameters *ConditionParameter `json:"parameters,omitempty"`
}

RuleSubcondition represents a subcondition of a ruleset condition

type RuleTimeFrame added in v1.2.0

type RuleTimeFrame struct {
	ScheduledWeekly *ScheduledWeekly `json:"scheduled_weekly,omitempty"`
	ActiveBetween   *ActiveBetween   `json:"active_between,omitempty"`
}

RuleTimeFrame represents a time_frame object on the rule object

type Ruleset added in v1.2.0

type Ruleset struct {
	ID          string         `json:"id,omitempty"`
	Name        string         `json:"name,omitempty"`
	Type        string         `json:"type,omitempty"`
	RoutingKeys []string       `json:"routing_keys,omitempty"`
	Team        *RulesetObject `json:"team,omitempty"`
	Updater     *RulesetObject `json:"updater,omitempty"`
	Creator     *RulesetObject `json:"creator,omitempty"`
}

Ruleset represents a ruleset.

type RulesetObject added in v1.2.0

type RulesetObject struct {
	Type string `json:"type,omitempty"`
	ID   string `json:"id,omitempty"`
}

RulesetObject represents a generic object that is common within a ruleset object

type RulesetPayload added in v1.2.0

type RulesetPayload struct {
	Ruleset *Ruleset `json:"ruleset,omitempty"`
}

RulesetPayload represents payload with a ruleset object

type RulesetRule added in v1.2.0

type RulesetRule struct {
	ID         string          `json:"id,omitempty"`
	Position   *int            `json:"position,omitempty"`
	Disabled   bool            `json:"disabled,omitempty"`
	Conditions *RuleConditions `json:"conditions,omitempty"`
	Actions    *RuleActions    `json:"actions,omitempty"`
	Ruleset    *APIObject      `json:"ruleset,omitempty"`
	Self       string          `json:"self,omitempty"`
	CatchAll   bool            `json:"catch_all,omitempty"`
	TimeFrame  *RuleTimeFrame  `json:"time_frame,omitempty"`
}

RulesetRule represents a Ruleset rule

type RulesetRulePayload added in v1.2.0

type RulesetRulePayload struct {
	Rule *RulesetRule `json:"rule,omitempty"`
}

RulesetRulePayload represents a payload for ruleset rules

type Schedule

type Schedule struct {
	APIObject
	Name                string          `json:"name,omitempty"`
	TimeZone            string          `json:"time_zone,omitempty"`
	Description         string          `json:"description,omitempty"`
	EscalationPolicies  []APIObject     `json:"escalation_policies,omitempty"`
	Users               []APIObject     `json:"users,omitempty"`
	Teams               []APIReference  `json:"teams,omitempty"`
	ScheduleLayers      []ScheduleLayer `json:"schedule_layers,omitempty"`
	OverrideSubschedule ScheduleLayer   `json:"override_subschedule,omitempty"`
	FinalSchedule       ScheduleLayer   `json:"final_schedule,omitempty"`
}

Schedule determines the time periods that users are on call.

type ScheduleLayer

type ScheduleLayer struct {
	APIObject
	Name                       string                  `json:"name,omitempty"`
	Start                      string                  `json:"start,omitempty"`
	End                        string                  `json:"end,omitempty"`
	RotationVirtualStart       string                  `json:"rotation_virtual_start,omitempty"`
	RotationTurnLengthSeconds  uint                    `json:"rotation_turn_length_seconds,omitempty"`
	Users                      []UserReference         `json:"users,omitempty"`
	Restrictions               []Restriction           `json:"restrictions,omitempty"`
	RenderedScheduleEntries    []RenderedScheduleEntry `json:"rendered_schedule_entries,omitempty"`
	RenderedCoveragePercentage float64                 `json:"rendered_coverage_percentage,omitempty"`
}

ScheduleLayer is an entry that puts users on call for a schedule.

type ScheduledAction

type ScheduledAction struct {
	Type      string      `json:"type,omitempty"`
	At        InlineModel `json:"at,omitempty"`
	ToUrgency string      `json:"to_urgency"`
}

ScheduledAction contains scheduled actions for the service.

type ScheduledWeekly added in v1.2.0

type ScheduledWeekly struct {
	Weekdays  []int  `json:"weekdays,omitempty"`
	Timezone  string `json:"timezone,omitempty"`
	StartTime int    `json:"start_time,omitempty"`
	Duration  int    `json:"duration,omitempty"`
}

ScheduledWeekly represents a time_frame object for scheduling rules weekly

type Service

type Service struct {
	APIObject
	Name                    string                   `json:"name,omitempty"`
	Description             string                   `json:"description,omitempty"`
	AutoResolveTimeout      *uint                    `json:"auto_resolve_timeout"`
	AcknowledgementTimeout  *uint                    `json:"acknowledgement_timeout"`
	CreateAt                string                   `json:"created_at,omitempty"`
	Status                  string                   `json:"status,omitempty"`
	LastIncidentTimestamp   string                   `json:"last_incident_timestamp,omitempty"`
	Integrations            []Integration            `json:"integrations,omitempty"`
	EscalationPolicy        EscalationPolicy         `json:"escalation_policy,omitempty"`
	Teams                   []Team                   `json:"teams,omitempty"`
	IncidentUrgencyRule     *IncidentUrgencyRule     `json:"incident_urgency_rule,omitempty"`
	SupportHours            *SupportHours            `json:"support_hours,omitempty"`
	ScheduledActions        []ScheduledAction        `json:"scheduled_actions,omitempty"`
	AlertCreation           string                   `json:"alert_creation,omitempty"`
	AlertGrouping           string                   `json:"alert_grouping,omitempty"`
	AlertGroupingTimeout    *uint                    `json:"alert_grouping_timeout,omitempty"`
	AlertGroupingParameters *AlertGroupingParameters `json:"alert_grouping_parameters,omitempty"`
}

Service represents something you monitor (like a web service, email service, or database service).

type ServiceDependency added in v1.3.0

type ServiceDependency struct {
	ID                string      `json:"id,omitempty"`
	Type              string      `json:"type,omitempty"`
	SupportingService *ServiceObj `json:"supporting_service,omitempty"`
	DependentService  *ServiceObj `json:"dependent_service,omitempty"`
}

ServiceDependency represents a relationship between a business and technical service

type ServiceObj added in v1.3.0

type ServiceObj struct {
	ID   string `json:"id,omitempty"`
	Type string `json:"type,omitempty"`
}

ServiceObj represents a service object in service relationship

type ServiceRule added in v1.4.0

type ServiceRule struct {
	ID         string              `json:"id,omitempty"`
	Self       string              `json:"self,omitempty"`
	Disabled   *bool               `json:"disabled,omitempty"`
	Conditions *RuleConditions     `json:"conditions,omitempty"`
	TimeFrame  *RuleTimeFrame      `json:"time_frame,omitempty"`
	Position   *int                `json:"position,omitempty"`
	Actions    *ServiceRuleActions `json:"actions,omitempty"`
}

ServiceRule represents a Service rule

type ServiceRuleActions added in v1.4.0

type ServiceRuleActions struct {
	Annotate    *RuleActionParameter   `json:"annotate,omitempty"`
	EventAction *RuleActionParameter   `json:"event_action,omitempty"`
	Extractions []RuleActionExtraction `json:"extractions,omitempty"`
	Priority    *RuleActionParameter   `json:"priority,omitempty"`
	Severity    *RuleActionParameter   `json:"severity,omitempty"`
	Suppress    *RuleActionSuppress    `json:"suppress,omitempty"`
	Suspend     *RuleActionSuspend     `json:"suspend,omitempty"`
}

ServiceRuleActions represents a rule action

type SupportHours

type SupportHours struct {
	Type       string `json:"type,omitempty"`
	Timezone   string `json:"time_zone,omitempty"`
	StartTime  string `json:"start_time,omitempty"`
	EndTime    string `json:"end_time,omitempty"`
	DaysOfWeek []uint `json:"days_of_week,omitempty"`
}

SupportHours are the support hours for the service.

type Tag added in v1.4.0

type Tag struct {
	APIObject
	Label string `json:"label,omitempty"`
}

Tag is a way to label user, team and escalation policies in PagerDuty

type TagAssignment added in v1.4.0

type TagAssignment struct {
	Type  string `json:"type"`
	TagID string `json:"id,omitempty"`
	Label string `json:"label,omitempty"`
}

TagAssignment is the structure for assigning tags to an entity

type TagAssignments added in v1.4.0

type TagAssignments struct {
	Add    []*TagAssignment `json:"add,omitempty"`
	Remove []*TagAssignment `json:"remove,omitempty"`
}

TagAssignments can be applied teams, users and escalation policies

type Team

type Team struct {
	APIObject
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
}

Team is a collection of users and escalation policies that represent a group of people within an organization.

type TeamUserRole added in v1.4.0

type TeamUserRole string

TeamUserRole is a named type to represent the different Team Roles supported by PagerDuty when adding a user to a team.

For more info: https://support.pagerduty.com/docs/advanced-permissions#team-roles

const (
	// TeamUserRoleObserver is the obesrver team role, which generally provides
	// read-only access. They gain responder-level permissions on an incident if
	// one is assigned to them.
	TeamUserRoleObserver TeamUserRole = "observer"

	// TeamUserRoleResponder is the responder team role, and they are given the
	// same permissions as the observer plus the ability to respond to
	// incidents, trigger incidents, and manage overrides.
	TeamUserRoleResponder TeamUserRole = "responder"

	// TeamUserRoleManager is the manager team role, and they are given the same
	// permissions as the responder plus the ability to edit and delete the
	// different resources owned by the team.
	TeamUserRoleManager TeamUserRole = "manager"
)

type UpdateScheduleOptions

type UpdateScheduleOptions struct {
	Overflow bool `url:"overflow,omitempty"`
}

UpdateScheduleOptions is the data structure used when calling the UpdateSchedule API endpoint.

type User

type User struct {
	APIObject
	Type              string             `json:"type"`
	Name              string             `json:"name"`
	Summary           string             `json:"summary"`
	Email             string             `json:"email"`
	Timezone          string             `json:"time_zone,omitempty"`
	Color             string             `json:"color,omitempty"`
	Role              string             `json:"role,omitempty"`
	AvatarURL         string             `json:"avatar_url,omitempty"`
	Description       string             `json:"description,omitempty"`
	InvitationSent    bool               `json:"invitation_sent,omitempty"`
	ContactMethods    []ContactMethod    `json:"contact_methods"`
	NotificationRules []NotificationRule `json:"notification_rules"`
	JobTitle          string             `json:"job_title,omitempty"`
	Teams             []Team
}

User is a member of a PagerDuty account that has the ability to interact with incidents and other data on the account.

type UserReference

type UserReference struct {
	User APIObject `json:"user"`
}

UserReference is a reference to an authorized PagerDuty user.

type V2Event

type V2Event struct {
	RoutingKey string        `json:"routing_key"`
	Action     string        `json:"event_action"`
	DedupKey   string        `json:"dedup_key,omitempty"`
	Images     []interface{} `json:"images,omitempty"`
	Links      []interface{} `json:"links,omitempty"`
	Client     string        `json:"client,omitempty"`
	ClientURL  string        `json:"client_url,omitempty"`
	Payload    *V2Payload    `json:"payload,omitempty"`
}

V2Event includes the incident/alert details

type V2EventResponse

type V2EventResponse struct {
	Status   string   `json:"status,omitempty"`
	DedupKey string   `json:"dedup_key,omitempty"`
	Message  string   `json:"message,omitempty"`
	Errors   []string `json:"errors,omitempty"`
}

V2EventResponse is the json response body for an event

func ManageEvent

func ManageEvent(e V2Event) (*V2EventResponse, error)

ManageEvent handles the trigger, acknowledge, and resolve methods for an event. It's recommended to use ManageEventWithContext instead.

func ManageEventWithContext added in v1.4.0

func ManageEventWithContext(ctx context.Context, e V2Event) (*V2EventResponse, error)

ManageEventWithContext handles the trigger, acknowledge, and resolve methods for an event.

type V2Payload

type V2Payload struct {
	Summary   string      `json:"summary"`
	Source    string      `json:"source"`
	Severity  string      `json:"severity"`
	Timestamp string      `json:"timestamp,omitempty"`
	Component string      `json:"component,omitempty"`
	Group     string      `json:"group,omitempty"`
	Class     string      `json:"class,omitempty"`
	Details   interface{} `json:"custom_details,omitempty"`
}

V2Payload represents the individual event details for an event

type Vendor

type Vendor struct {
	APIObject
	Name                  string `json:"name,omitempty"`
	LogoURL               string `json:"logo_url,omitempty"`
	LongName              string `json:"long_name,omitempty"`
	WebsiteURL            string `json:"website_url,omitempty"`
	Description           string `json:"description,omitempty"`
	Connectable           bool   `json:"connectable,omitempty"`
	ThumbnailURL          string `json:"thumbnail_url,omitempty"`
	GenericServiceType    string `json:"generic_service_type,omitempty"`
	IntegrationGuideURL   string `json:"integration_guide_url,omitempty"`
	AlertCreationDefault  string `json:"alert_creation_default,omitempty"`
	AlertCreationEditable bool   `json:"alert_creation_editable,omitempty"`
	IsPDCEF               bool   `json:"is_pd_cef,omitempty"`
}

Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog, etc are all examples of vendors that can be integrated in PagerDuty by making an integration.

type WebhookPayload

type WebhookPayload struct {
	ID         string          `json:"id"`
	Event      string          `json:"event"`
	CreatedOn  time.Time       `json:"created_on"`
	Incident   IncidentDetails `json:"incident"`
	LogEntries []LogEntry      `json:"log_entries"`
}

WebhookPayload represents the V2 webhook payload

type WebhookPayloadMessages added in v1.2.0

type WebhookPayloadMessages struct {
	Messages []WebhookPayload `json:"messages"`
}

WebhookPayloadMessages is the wrapper around the Webhook payloads. The Array may contain multiple message elements if webhook firing actions occurred in quick succession

func DecodeWebhook

func DecodeWebhook(r io.Reader) (*WebhookPayloadMessages, error)

DecodeWebhook decodes a webhook from a response object.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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