pagerduty

package module
v1.4.3 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2021 License: Apache-2.0 Imports: 15 Imported by: 0

README

GoDoc Go Report Card License

go-pagerduty

go-pagerduty is a CLI and go client library for the PagerDuty 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
NOTICE: Breaking API Changes in master branch

As part of the upcoming v1.5.0 release, we will be fixing features that have never worked correctly and require a breaking API change to fix. One example is the issue reported in #232, as well as a handful of other examples within the v1.5.0 milestone.

As a result, the master branch now contains breaking changes since the last v1.4.x release. We will clearly highlight the breaking changes in the v1.5.0 release notes when it's ready.

Example Usage
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)
}
Extending and Debugging Client
Extending The Client

The *pagerduty.Client has a Do method which allows consumers to wrap the client, and make their own requests to the PagerDuty API. The method signature is similar to that of the http.Client.Do method, except it also includes a bool to incidate whether the API endpoint is authenticated (i.e., the REST API). When the API is authenticated, the client will annotate the request with the appropriate headers to be authenticated by the API.

If the PagerDuty client doesn't natively expose functionality that you wish to use, such as undocumented JSON fields, you can use the Do() method to issue your own request that you can parse the response of.

Likewise, you can use it to issue requests to the API for the purposes of debugging. However, that's not the only mechanism for debugging.

Debugging the Client

The *pagerduty.Client has a method that allows consumers to enable debug functionality, including interception of PagerDuty API responses. This is done by using the SetDebugFlag() method using the pagerduty.DebugFlag unsigned integer type. There are also exported constants to help consumers enable specific debug behaviors.

Capturing Last PagerDuty Response

If you're not getting the response you expect from the PagerDuty Go client, you can enable the DebugCaptureLastResponse debug flag to capture the HTTP responses. You can then use one of the methods to make an API call, and then inspect the API response received. For example:

client := pagerduty.NewClient("exmaple")

client.SetDebugFlag(pagerduty.DebugCaptureLastResponse)

oncalls, err := client.ListOnCallsWithContext(ctx, pagerduty.ListOnCallOptions{})

resp, ok := client.LastAPIReponse()
if ok { // resp is an *http.Response we can inspect
	body, err := ioutil.ReadAll(resp.Body)
    // ...
}

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

Overview

Package pagerduty is a Go API client for both the PagerDuty v2 REST and Events API. Most methods should be implemented, and it's recommended to use the WithContext variant of each method and to specify a context with a timeout.

To debug responses from the API, you can instruct the client to capture the last response from the API. Please see the documentation for the SetDebugFlag() and LastAPIResponse() methods for more details.

Index

Constants

View Source
const Version = "1.5.0"

Version is current version of this client.

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

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

func (a APIError) Error() string

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

func (APIError) NotFound

func (a APIError) NotFound() bool

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

func (APIError) RateLimited

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

func (a APIError) Temporary() bool

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

type APIErrorObject

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

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

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

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

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

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

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

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

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

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

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

BusinessServicePayload represents payload with a business service object

type BusinessServiceTeam

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

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

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

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

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

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

func (*Channel) UnmarshalJSON

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

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

NewOAuthClient creates an API client using an OAuth token

func (*Client) AddEscalationPolicyToTeam deprecated

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

AddEscalationPolicyToTeam adds an escalation policy to a team.

Deprecated: Use AddEscalationPolicyToTeamWithContext instead.

func (*Client) AddEscalationPolicyToTeamWithContext

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

AddEscalationPolicyToTeamWithContext adds an escalation policy to a team.

func (*Client) AddUserToTeam deprecated

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

AddUserToTeam adds a user to a team.

Deprecated: Use AddUserToTeamWithContext instead.

func (*Client) AddUserToTeamWithContext

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

AddUserToTeamWithContext adds a user to a team.

func (*Client) AssignTags deprecated

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

AssignTags adds and removes tag assignments with entities.

Deprecated: Use AssignTagsWithContext instead.

func (*Client) AssignTagsWithContext

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 deprecated

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

AssociateServiceDependencies Create new dependencies between two services.

Deprecated: Use AssociateServiceDependenciesWithContext instead.

func (*Client) AssociateServiceDependenciesWithContext

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

AssociateServiceDependenciesWithContext Create new dependencies between two services.

func (*Client) CreateBusinessService deprecated

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

CreateBusinessService creates a new business service.

Deprecated: Use CreateBusinessServiceWithContext instead

func (*Client) CreateBusinessServiceWithContext

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

CreateBusinessServiceWithContext creates a new business service.

func (*Client) CreateChangeEvent deprecated

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

Deprecated: Use CreateChangeEventWithContext instead.

func (*Client) CreateChangeEventWithContext

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 deprecated

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

CreateEscalationPolicy creates a new escalation policy.

Deprecated: Use CreateEscalationPolicyWithContext instead.

func (*Client) CreateEscalationPolicyWithContext

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

CreateEscalationPolicyWithContext creates a new escalation policy.

func (*Client) CreateEscalationRule deprecated

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.

Deprecated: Use CreateEscalationRuleWithContext instead.

func (*Client) CreateEscalationRuleWithContext

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 deprecated

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

CreateExtension creates a single extension.

Deprecated: Use CreateExtensionWithContext instead.

func (*Client) CreateExtensionWithContext

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

CreateExtensionWithContext creates a single extension.

func (*Client) CreateIncident deprecated

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

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

Deprecated: 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: Use CreateIncidentNoteWithContext instead.

func (*Client) CreateIncidentNoteWithContext

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 deprecated

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

CreateIncidentNoteWithResponse creates a new note for the specified incident.

Deprecated: Use CreateIncidentNoteWithContext instead.

func (*Client) CreateIncidentWithContext

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 deprecated

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

CreateIntegration creates a new integration belonging to a service.

Deprecated: Use CreateIntegrationWithContext instead.

func (*Client) CreateIntegrationWithContext

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 deprecated

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

CreateMaintenanceWindow creates a new maintenance window for the specified services.

Deprecated: Use CreateMaintenanceWindowWithContext instead.

func (*Client) CreateMaintenanceWindowWithContext

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 deprecated

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

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

Deprecated: Use CreateOverrideWithContext instead.

func (*Client) CreateOverrideWithContext

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 deprecated

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

CreateRuleset creates a new ruleset.

Deprecated: Use CreateRulesetWithContext instead.

func (*Client) CreateRulesetRule deprecated

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

CreateRulesetRule creates a new rule for a ruleset.

Deprecated: Use CreateRulesetRuleWithContext instead.

func (*Client) CreateRulesetRuleWithContext

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

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

CreateRulesetWithContext creates a new ruleset.

func (*Client) CreateSchedule deprecated

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

CreateSchedule creates a new on-call schedule.

Deprecated: Use CreateScheduleWithContext instead.

func (*Client) CreateScheduleWithContext

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

CreateScheduleWithContext creates a new on-call schedule.

func (*Client) CreateService deprecated

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

CreateService creates a new service.

Deprecated: Use CreateServiceWithContext instead.

func (*Client) CreateServiceRule

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

CreateServiceRule creates a service rule.

func (*Client) CreateServiceWithContext

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

CreateServiceWithContext creates a new service.

func (*Client) CreateTag deprecated

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

CreateTag creates a new tag.

Deprecated: Use CreateTagWithContext instead.

func (*Client) CreateTagWithContext

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

CreateTagWithContext creates a new tag.

func (*Client) CreateTeam deprecated

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

CreateTeam creates a new team.

Deprecated: Use CreateTeamWithContext instead.

func (*Client) CreateTeamWithContext

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

CreateTeamWithContext creates a new team.

func (*Client) CreateUser deprecated

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

CreateUser creates a new user.

Deprecated: Use CreateUserWithContext instead.

func (*Client) CreateUserContactMethod deprecated

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

CreateUserContactMethod creates a new contact method for user.

Deprecated: Use CreateUserContactMethodWithContext instead.

func (*Client) CreateUserContactMethodWithContext

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

CreateUserContactMethodWithContext creates a new contact method for user.

func (*Client) CreateUserNotificationRule deprecated

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

CreateUserNotificationRule creates a new notification rule for a user.

Deprecated: Use CreateUserNotificationRuleWithContext instead.

func (*Client) CreateUserNotificationRuleWithContext

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

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

CreateUserWithContext creates a new user.

func (*Client) DeleteAddon deprecated

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

DeleteAddon deletes an add-on from your account.

Deprecated: Use DeleteAddonWithContext instead.

func (*Client) DeleteAddonWithContext

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

DeleteAddonWithContext deletes an add-on from your account.

func (*Client) DeleteBusinessService deprecated

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

DeleteBusinessService deletes a business_service.

Deprecated: Use DeleteBusinessServiceWithContext instead.

func (*Client) DeleteBusinessServiceWithContext

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

DeleteBusinessServiceWithContext deletes a business_service.

func (*Client) DeleteEscalationPolicy deprecated

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

DeleteEscalationPolicy deletes an existing escalation policy and rules.

Deprecated: Use DeleteEscalationPolicyWithContext instead.

func (*Client) DeleteEscalationPolicyWithContext

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

DeleteEscalationPolicyWithContext deletes an existing escalation policy and rules.

func (*Client) DeleteEscalationRule deprecated

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

DeleteEscalationRule deletes an existing escalation rule.

Deprecated: Use DeleteEscalationRuleWithContext instead.

func (*Client) DeleteEscalationRuleWithContext

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

DeleteEscalationRuleWithContext deletes an existing escalation rule.

func (*Client) DeleteExtension deprecated

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

DeleteExtension deletes an extension by its ID.

Deprecated: Use DeleteExtensionWithContext instead.

func (*Client) DeleteExtensionWithContext

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

DeleteExtensionWithContext deletes an extension by its ID.

func (*Client) DeleteIntegration deprecated

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

DeleteIntegration deletes an existing integration.

Deprecated: Use DeleteIntegrationWithContext instead.

func (*Client) DeleteIntegrationWithContext

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

DeleteIntegrationWithContext deletes an existing integration.

func (*Client) DeleteMaintenanceWindow deprecated

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.

Deprecated: Use DeleteMaintenanceWindowWithContext instead.

func (*Client) DeleteMaintenanceWindowWithContext

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 deprecated

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

DeleteOverride removes an override.

Deprecated: Use DeleteOverrideWithContext instead.

func (*Client) DeleteOverrideWithContext

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

DeleteOverrideWithContext removes an override.

func (*Client) DeleteRuleset deprecated

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

DeleteRuleset deletes a ruleset.

Deprecated: Use DeleteRulesetWithContext instead.

func (*Client) DeleteRulesetRule deprecated

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

DeleteRulesetRule deletes a rule.

Deprecated: Use DeleteRulesetRuleWithContext instead.

func (*Client) DeleteRulesetRuleWithContext

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

DeleteRulesetRuleWithContext deletes a rule.

func (*Client) DeleteRulesetWithContext

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

DeleteRulesetWithContext deletes a ruleset.

func (*Client) DeleteSchedule deprecated

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

DeleteSchedule deletes an on-call schedule.

Deprecated: Use DeleteScheduleWithContext instead.

func (*Client) DeleteScheduleWithContext

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

DeleteScheduleWithContext deletes an on-call schedule.

func (*Client) DeleteService deprecated

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

DeleteService deletes an existing service.

Deprecated: Use DeleteServiceWithContext instead.

func (*Client) DeleteServiceRule

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

DeleteServiceRule deletes a service rule.

func (*Client) DeleteServiceWithContext

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

DeleteServiceWithContext deletes an existing service.

func (*Client) DeleteTag deprecated

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

DeleteTag removes an existing tag.

Deprecated: Use DeleteTagWithContext instead.

func (*Client) DeleteTagWithContext

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

DeleteTagWithContext removes an existing tag.

func (*Client) DeleteTeam deprecated

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

DeleteTeam removes an existing team.

Deprecated: Use DeleteTeamWithContext instead.

func (*Client) DeleteTeamWithContext

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

DeleteTeamWithContext removes an existing team.

func (*Client) DeleteUser deprecated

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

DeleteUser deletes a user.

Deprecated: Use DeleteUserWithContext instead.

func (*Client) DeleteUserContactMethod deprecated

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

DeleteUserContactMethod deletes a user.

Deprecated: Use DeleteUserContactMethodWithContext instead.

func (*Client) DeleteUserContactMethodWithContext

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

DeleteUserContactMethodWithContext deletes a user.

func (*Client) DeleteUserNotificationRule deprecated

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

DeleteUserNotificationRule deletes a notification rule for a user.

Deprecated: Use DeleteUserNotificationRuleWithContext instead.

func (*Client) DeleteUserNotificationRuleWithContext

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

DeleteUserNotificationRuleWithContext deletes a notification rule for a user.

func (*Client) DeleteUserWithContext

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

DeleteUserWithContext deletes a user.

func (*Client) DisassociateServiceDependencies deprecated

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

DisassociateServiceDependencies Disassociate dependencies between two services.

Deprecated: Use DisassociateServiceDependenciesWithContext instead.

func (*Client) DisassociateServiceDependenciesWithContext

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

DisassociateServiceDependenciesWithContext Disassociate dependencies between two services.

func (*Client) Do

func (c *Client) Do(r *http.Request, authRequired bool) (*http.Response, error)

Do sets some headers on the request, before actioning it using the internal HTTPClient. If the PagerDuty API you're communicating with requires authentication, such as the REST API, set authRequired to true and the client will set the proper authentication headers onto the request. This also assumes any request body is in JSON format and sets the Content-Type to application/json.

func (*Client) GetAddon deprecated

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

GetAddon gets details about an existing add-on.

Deprecated: Use GetAddonWithContext instead.

func (*Client) GetAddonWithContext

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

GetAddonWithContext gets details about an existing add-on.

func (*Client) GetAggregatedIncidentData

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

GetAggregatedIncidentData gets the aggregated incident analytics for the requested data.

func (*Client) GetAggregatedServiceData

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

GetAggregatedServiceData gets the aggregated service analytics for the requested data.

func (*Client) GetAggregatedTeamData

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

GetAggregatedTeamData gets the aggregated team analytics for the requested data.

func (*Client) GetBusinessService deprecated

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

GetBusinessService gets details about a business service.

Deprecated: Use GetBusinessServiceWithContext instead.

func (*Client) GetBusinessServiceWithContext

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

GetBusinessServiceWithContext gets details about a business service.

func (*Client) GetCurrentUser deprecated

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.

Deprecated: Use GetCurrentUserWithContext instead.

func (*Client) GetCurrentUserWithContext

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

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

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 deprecated

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

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

Deprecated: Use GetEscalationPolicyWithContext instead.

func (*Client) GetEscalationPolicyWithContext

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 deprecated

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

GetEscalationRule gets information about an existing escalation rule.

Deprecated: Use GetEscalationRuleWithContext instead.

func (*Client) GetEscalationRuleWithContext

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 deprecated

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

GetExtension gets an extension by its ID.

Deprecated: Use GetExtensionWithContext instead.

func (*Client) GetExtensionSchema deprecated

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

GetExtensionSchema gets a single extension schema.

Deprecated: Use GetExtensionSchemaWithContext instead.

func (*Client) GetExtensionSchemaWithContext

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

GetExtensionSchemaWithContext gets a single extension schema.

func (*Client) GetExtensionWithContext

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

GetExtensionWithContext gets an extension by its ID.

func (*Client) GetIncident deprecated

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

GetIncident shows detailed information about an incident.

Deprecated: Use GetIncidentWithContext instead.

func (*Client) GetIncidentAlert deprecated

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

GetIncidentAlert gets the alert that triggered the incident.

Deprecated: Use GetIncidentAlertWithContext instead.

func (*Client) GetIncidentAlertWithContext

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

GetIncidentAlertWithContext gets the alert that triggered the incident.

func (*Client) GetIncidentWithContext

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

GetIncidentWithContext shows detailed information about an incident.

func (*Client) GetIntegration deprecated

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

GetIntegration gets details about an integration belonging to a service.

Deprecated: Use GetIntegrationWithContext instead.

func (*Client) GetIntegrationWithContext

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 deprecated

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

GetLogEntry list log entries for the specified incident.

Deprecated: Use GetLogEntryWithContext instead.

func (*Client) GetLogEntryWithContext

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

GetLogEntryWithContext list log entries for the specified incident.

func (*Client) GetMaintenanceWindow deprecated

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

GetMaintenanceWindow gets an existing maintenance window.

Deprecated: Use GetMaintenanceWindowWithContext instead.

func (*Client) GetMaintenanceWindowWithContext

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

GetMaintenanceWindowWithContext gets an existing maintenance window.

func (*Client) GetRuleset deprecated

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

GetRuleset gets details about a ruleset.

Deprecated: Use GetRulesetWithContext instead.

func (*Client) GetRulesetRule deprecated

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

GetRulesetRule gets an event rule.

Deprecated: Use GetRulesetRuleWithContext instead.

func (*Client) GetRulesetRuleWithContext

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

GetRulesetRuleWithContext gets an event rule

func (*Client) GetRulesetWithContext

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

GetRulesetWithContext gets details about a ruleset.

func (*Client) GetSchedule deprecated

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.

Deprecated: Use GetScheduleWithContext instead.

func (*Client) GetScheduleWithContext

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 deprecated

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

GetService gets details about an existing service.

Deprecated: Use GetServiceWithContext instead.

func (*Client) GetServiceRule

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

GetServiceRule gets a service rule.

func (*Client) GetServiceWithContext

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

GetServiceWithContext gets details about an existing service.

func (*Client) GetTag deprecated

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

GetTag gets details about an existing tag.

Deprecated: Use GetTagWithContext instead.

func (*Client) GetTagWithContext

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

GetTagWithContext gets details about an existing tag.

func (*Client) GetTagsForEntity

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

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 deprecated

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

GetTeam gets details about an existing team.

Deprecated: Use GetTeamWithContext instead.

func (*Client) GetTeamWithContext

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

GetTeamWithContext gets details about an existing team.

func (*Client) GetTeamsByTag

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

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 deprecated

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

GetUser gets details about an existing user.

Deprecated: Use GetUserWithContext instead.

func (*Client) GetUserContactMethod deprecated

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

GetUserContactMethod gets details about a contact method.

Deprecated: Use GetUserContactMethodWithContext instead.

func (*Client) GetUserContactMethodWithContext

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

GetUserContactMethodWithContext gets details about a contact method.

func (*Client) GetUserNotificationRule deprecated

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

GetUserNotificationRule gets details about a notification rule.

Deprecated: Use GetUserNotificationRuleWithContext instead.

func (*Client) GetUserNotificationRuleWithContext

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

GetUserNotificationRuleWithContext gets details about a notification rule.

func (*Client) GetUserWithContext

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

GetUserWithContext gets details about an existing user.

func (*Client) GetUsersByTag

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

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 deprecated

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

GetVendor gets details about an existing vendor.

Deprecated: Use GetVendorWithContext instead.

func (*Client) GetVendorWithContext

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

GetVendorWithContext gets details about an existing vendor.

func (*Client) InstallAddon deprecated

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

InstallAddon installs an add-on for your account.

Deprecated: Use InstallAddonWithContext instead.

func (*Client) InstallAddonWithContext

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

InstallAddonWithContext installs an add-on for your account.

func (*Client) LastAPIRequest

func (c *Client) LastAPIRequest() (*http.Request, bool)

LastAPIRequest returns the last request sent to the API, if enabled. This can be turned on by using the SetDebugFlag() method while providing the DebugCaptureLastRequest flag.

The bool value returned from this method is false if the request is unset or is nil. If there was an error prepping the request to be sent to the server, there will be no *http.Request to capture so this will return (<nil>, false).

This is meant to help with debugging unexpected API interactions, so most won't need to use it. Also, callers will need to ensure the *Client isn't used concurrently, otherwise they might receive another method's *http.Request and not the one they anticipated.

The *http.Request made within the Do() method is not captured by the client, and thus won't be returned by this method.

func (*Client) LastAPIResponse

func (c *Client) LastAPIResponse() (*http.Response, bool)

LastAPIResponse returns the last response received from the API, if enabled. This can be turned on by using the SetDebugFlag() method while providing the DebugCaptureLastResponse flag.

The bool value returned from this method is false if the response is unset or is nil. If the HTTP exchange failed (e.g., there was a connection error) there will be no *http.Response to capture so this will return (<nil>, false).

This is meant to help with debugging unexpected API interactions, so most won't need to use it. Also, callers will need to ensure the *Client isn't used concurrently, otherwise they might receive another method's *http.Response and not the one they anticipated.

The *http.Response from the Do() method is not captured by the client, and thus won't be returned by this method.

func (*Client) ListAbilities deprecated

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

ListAbilities lists all abilities on your account.

Deprecated: Use ListAbilitiesWithContext instead.

func (*Client) ListAbilitiesWithContext

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

ListAbilitiesWithContext lists all abilities on your account.

func (*Client) ListAddons deprecated

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

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

Deprecated: Use ListAddonsWithContext instead.

func (*Client) ListAddonsWithContext

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 deprecated

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

ListBusinessServiceDependencies lists dependencies of a business service.

Deprecated: Use ListBusinessServiceDependenciesWithContext instead.

func (*Client) ListBusinessServiceDependenciesWithContext

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

ListBusinessServiceDependenciesWithContext lists dependencies of a business service.

func (*Client) ListBusinessServices

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

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 deprecated

ListEscalationPolicies lists all of the existing escalation policies.

Deprecated: Use ListEscalationPoliciesWithContext instead.

func (*Client) ListEscalationPoliciesWithContext

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

ListEscalationPoliciesWithContext lists all of the existing escalation policies.

func (*Client) ListEscalationRules deprecated

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

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

Deprecated: Use ListEscalationRulesWithContext instead.

func (*Client) ListEscalationRulesWithContext

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 deprecated

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

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

Deprecated: Use ListExtensionSchemasWithContext instead.

func (*Client) ListExtensionSchemasWithContext

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 deprecated

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

ListExtensions lists the extensions from the API.

Deprecated: Use ListExtensionsWithContext instead.

func (*Client) ListExtensionsWithContext

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

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 deprecated

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

ListIncidentAlertsWithOpts lists existing alerts for the specified incident.

Deprecated: Use ListIncidentAlertsWithContext instead.

func (*Client) ListIncidentLogEntries deprecated

ListIncidentLogEntries lists existing log entries for the specified incident.

Deprecated: Use ListIncidentLogEntriesWithContext instead.

func (*Client) ListIncidentLogEntriesWithContext

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 deprecated

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

ListIncidentNotes lists existing notes for the specified incident.

Deprecated: Use ListIncidentNotesWithContext instead.

func (*Client) ListIncidentNotesWithContext

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

ListIncidentNotesWithContext lists existing notes for the specified incident.

func (*Client) ListIncidents deprecated

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

ListIncidents lists existing incidents.

Deprecated: Use ListIncidentsWithContext instead.

func (*Client) ListIncidentsWithContext

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

ListIncidentsWithContext lists existing incidents.

func (*Client) ListLogEntries deprecated

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

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

Deprecated: Use ListLogEntriesWithContext instead.

func (*Client) ListLogEntriesWithContext

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 deprecated

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

Deprecated: Use ListMaintenanceWindowsWithContext instead.

func (*Client) ListMaintenanceWindowsWithContext

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 deprecated

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

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

Deprecated: Use ListMembersWithContext instead.

func (*Client) ListMembersPaginated

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

ListMembersPaginated gets all members associated with the specified team.

func (*Client) ListMembersWithContext

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 deprecated

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).

Deprecated: Use ListNotificationsWithContext instead.

func (*Client) ListNotificationsWithContext

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 deprecated

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.

Deprecated: Use ListOnCallUsersWithContext instead.

func (*Client) ListOnCallUsersWithContext

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 deprecated

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

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

Deprecated: Use ListOnCallsWithContext instead.

func (*Client) ListOnCallsWithContext

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 deprecated

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

ListOverrides lists overrides for a given time range.

Deprecated: Use ListOverridesWithContext instead.

func (*Client) ListOverridesWithContext

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

ListOverridesWithContext lists overrides for a given time range.

func (*Client) ListPriorities deprecated

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

ListPriorities lists existing priorities.

Deprecated: Use ListPrioritiesWithContext instead.

func (*Client) ListPrioritiesWithContext

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

ListPrioritiesWithContext lists existing priorities.

func (*Client) ListRulesetRules

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

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

ListRulesetRulesPaginated gets all rules for a ruleset.

func (*Client) ListRulesets

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

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

ListRulesetsPaginated gets all rulesets.

func (*Client) ListSchedules deprecated

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

ListSchedules lists the on-call schedules.

Deprecated: Use ListSchedulesWithContext instead.

func (*Client) ListSchedulesWithContext

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

ListSchedulesWithContext lists the on-call schedules.

func (*Client) ListServiceRulesPaginated

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

ListServiceRulesPaginated gets all rules for a service.

func (*Client) ListServices deprecated

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

ListServices lists existing services.

Deprecated: Use ListServicesWithContext instead.

func (*Client) ListServicesPaginated

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

ListServicesPaginated lists existing services processing paginated responses

func (*Client) ListServicesWithContext

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

ListServicesWithContext lists existing services.

func (*Client) ListTags

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

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 deprecated

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

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

Deprecated: Use ListTeamsWithContext instead.

func (*Client) ListTeamsWithContext

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 deprecated

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

ListTechnicalServiceDependencies lists dependencies of a technical service.

Deprecated: Use ListTechnicalServiceDependenciesWithContext instead.

func (*Client) ListTechnicalServiceDependenciesWithContext

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

ListTechnicalServiceDependenciesWithContext lists dependencies of a technical service.

func (*Client) ListUserContactMethods deprecated

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

ListUserContactMethods fetches contact methods of the existing user.

Deprecated: Use ListUserContactMethodsWithContext instead.

func (*Client) ListUserContactMethodsWithContext

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

ListUserContactMethodsWithContext fetches contact methods of the existing user.

func (*Client) ListUserNotificationRules deprecated

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

ListUserNotificationRules fetches notification rules of the existing user.

Deprecated: Use ListUserNotificationRulesWithContext instead.

func (*Client) ListUserNotificationRulesWithContext

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

ListUserNotificationRulesWithContext fetches notification rules of the existing user.

func (*Client) ListUsers deprecated

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

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

Deprecated: Use ListUsersWithContext instead.

func (*Client) ListUsersWithContext

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 deprecated

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

ListVendors lists existing vendors.

Deprecated: Use ListVendorsWithContext instead.

func (*Client) ListVendorsWithContext

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

ListVendorsWithContext lists existing vendors.

func (*Client) ManageEvent deprecated

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

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

Deprecated: Use ManageEventWithContext instead.

func (*Client) ManageEventWithContext

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 deprecated

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

ManageIncidentAlerts allows you to manage the alerts of an incident.

Deprecated: Use ManageIncidentAlertsWithContext instead.

func (*Client) ManageIncidentAlertsWithContext

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 deprecated

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

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

Deprecated: Use ManageIncidentsWithContext instead.

func (*Client) ManageIncidentsWithContext

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 deprecated

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

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

Deprecated: Use MergeIncidentsWithContext instead.

func (*Client) MergeIncidentsWithContext

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 deprecated

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

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

Deprecated: Use PreviewScheduleWithContext instead.

func (*Client) PreviewScheduleWithContext

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 deprecated

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

RemoveEscalationPolicyFromTeam removes an escalation policy from a team.

Deprecated: Use RemoveEscalationPolicyFromTeamWithContext instead.

func (*Client) RemoveEscalationPolicyFromTeamWithContext

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

RemoveEscalationPolicyFromTeamWithContext removes an escalation policy from a team.

func (*Client) RemoveUserFromTeam deprecated

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

RemoveUserFromTeam removes a user from a team.

Deprecated: Use RemoveUserFromTeamWithContext instead.

func (*Client) RemoveUserFromTeamWithContext

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

RemoveUserFromTeamWithContext removes a user from a team.

func (*Client) ResponderRequest deprecated

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

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

Deprecated: Use ResponderRequestWithContext instead.

func (*Client) ResponderRequestWithContext

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) SetDebugFlag

func (c *Client) SetDebugFlag(flag DebugFlag)

SetDebugFlag sets the DebugFlag of the client, which are just bit flags that tell the client how to behave. They can be bitwise-ORed together to enable multiple behaviors.

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: Use SnoozeIncidentWithContext instead.

func (*Client) SnoozeIncidentWithContext

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 deprecated

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

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

Deprecated: Use SnoozeIncidentWithContext instead.

func (*Client) TestAbility deprecated

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

TestAbility checks if your account has the given ability.

Deprecated: Use TestAbilityWithContext instead.

func (*Client) TestAbilityWithContext

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

TestAbilityWithContext checks if your account has the given ability.

func (*Client) UpdateAddon deprecated

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

UpdateAddon updates an existing add-on.

Deprecated: Use UpdateAddonWithContext instead.

func (*Client) UpdateAddonWithContext

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

UpdateAddonWithContext updates an existing add-on.

func (*Client) UpdateBusinessService deprecated

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

UpdateBusinessService updates a business_service.

Deprecated: Use UpdateBusinessServiceWithContext instead.

func (*Client) UpdateBusinessServiceWithContext

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

UpdateBusinessServiceWithContext updates a business_service.

func (*Client) UpdateEscalationPolicy deprecated

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

UpdateEscalationPolicy updates an existing escalation policy and its rules.

Deprecated: Use UpdateEscalationPolicyWithContext instead.

func (*Client) UpdateEscalationPolicyWithContext

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 deprecated

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

UpdateEscalationRule updates an existing escalation rule.

Deprecated: Use UpdateEscalationRuleWithContext instead.

func (*Client) UpdateEscalationRuleWithContext

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

UpdateEscalationRuleWithContext updates an existing escalation rule.

func (*Client) UpdateExtension deprecated

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

UpdateExtension updates an extension by its ID.

Deprecated: Use UpdateExtensionWithContext instead.

func (*Client) UpdateExtensionWithContext

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

UpdateExtensionWithContext updates an extension by its ID.

func (*Client) UpdateIntegration deprecated

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

UpdateIntegration updates an integration belonging to a service.

Deprecated: Use UpdateIntegrationWithContext instead.

func (*Client) UpdateIntegrationWithContext

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

UpdateIntegrationWithContext updates an integration belonging to a service.

func (*Client) UpdateMaintenanceWindow deprecated

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

UpdateMaintenanceWindow updates an existing maintenance window.

Deprecated: Use UpdateMaintenanceWindowWithContext instead.

func (*Client) UpdateMaintenanceWindowWithContext

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

UpdateMaintenanceWindowWithContext updates an existing maintenance window.

func (*Client) UpdateRuleset deprecated

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

UpdateRuleset updates a ruleset.

Deprecated: Use UpdateRulesetWithContext instead.

func (*Client) UpdateRulesetRule deprecated

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

UpdateRulesetRule updates a rule.

Deprecated: Use UpdateRulesetRuleWithContext instead.

func (*Client) UpdateRulesetRuleWithContext

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

UpdateRulesetRuleWithContext updates a rule.

func (*Client) UpdateRulesetWithContext

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

UpdateRulesetWithContext updates a ruleset.

func (*Client) UpdateSchedule deprecated

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

UpdateSchedule updates an existing on-call schedule.

Deprecated: Use UpdateScheduleWithContext instead.

func (*Client) UpdateScheduleWithContext

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

UpdateScheduleWithContext updates an existing on-call schedule.

func (*Client) UpdateService deprecated

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

UpdateService updates an existing service.

Deprecated: Use UpdateServiceWithContext instead.

func (*Client) UpdateServiceRule

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

UpdateServiceRule updates a service rule.

func (*Client) UpdateServiceWithContext

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

UpdateServiceWithContext updates an existing service.

func (*Client) UpdateTeam deprecated

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

UpdateTeam updates an existing team.

Deprecated: Use UpdateTeamWithContext instead.

func (*Client) UpdateTeamWithContext

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

UpdateTeamWithContext updates an existing team.

func (*Client) UpdateUser deprecated

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

UpdateUser updates an existing user.

Deprecated: 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

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

UpdateUserContactMethodWthContext updates an existing user.

func (*Client) UpdateUserNotificationRule deprecated

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

UpdateUserNotificationRule updates a notification rule for a user.

Deprecated: Use UpdateUserNotificationRuleWithContext instead.

func (*Client) UpdateUserNotificationRuleWithContext

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

UpdateUserNotificationRuleWithContext updates a notification rule for a user.

func (*Client) UpdateUserWithContext

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

UpdateUserWithContext updates an existing user.

type ClientOptions

type ClientOptions func(*Client)

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

func WithAPIEndpoint

func WithAPIEndpoint(endpoint string) ClientOptions

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

func WithOAuth

func WithOAuth() ClientOptions

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

func WithV2EventsAPIEndpoint

func WithV2EventsAPIEndpoint(endpoint string) ClientOptions

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

type CommonLogEntryField

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

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

ConditionParameter represents parameters in a rule condition

type ConferenceBridge

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 DebugFlag

type DebugFlag uint64

DebugFlag represents a set of debug bit flags that can be bitwise-ORed together to configure the different behaviors. This allows us to expand functionality in the future without introducing breaking changes.

const (
	// DebugDisabled disables all debug behaviors.
	DebugDisabled DebugFlag = 0

	// DebugCaptureLastRequest captures the last HTTP request made to the API
	// (if there was one) and makes it available via the LastAPIRequest()
	// method.
	//
	// This may increase memory usage / GC, as we'll be making a copy of the
	// full HTTP request body on each request and capturing it for inspection.
	DebugCaptureLastRequest DebugFlag = 1 << 0

	// DebugCaptureLastResponse captures the last HTTP response from the API (if
	// there was one) and makes it available via the LastAPIReponse() method.
	//
	// This may increase memory usage / GC, as we'll be making a copy of the
	// full HTTP response body on each request and capturing it for inspection.
	DebugCaptureLastResponse DebugFlag = 1 << 1
)

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

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

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

IncidentAlertList is the generic structure of a list of alerts

type IncidentAlertResponse

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

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

type ListBusinessServiceOptions struct {
	APIListObject
}

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

type ListBusinessServicesResponse

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

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

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

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

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

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

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

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

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

type ListTagResponse

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

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

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

type ListUserNotificationRulesResponse

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

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

type ListUserResponse

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

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 cosnumers accidentally missing a nil pointer check, thus crashing their whole program.

func (*NullAPIErrorObject) UnmarshalJSON

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     []ResponderRequestTargets `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

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

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

RuleActionParameter represents a generic parameter object on a rule action

type RuleActionSuppress

type RuleActionSuppress struct {
	Value               bool   `json:"value"`
	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

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

RuleActionSuspend represents a rule suspend action object

type RuleActions

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

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

RuleConditions represents the conditions field for a Ruleset

type RuleSubcondition

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

RuleSubcondition represents a subcondition of a ruleset condition

type RuleTimeFrame

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

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

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

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

RulesetPayload represents payload with a ruleset object

type RulesetRule

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

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

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"`
	ScheduledActions        []ScheduledAction        `json:"scheduled_actions"`
	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

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

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

ServiceObj represents a service object in service relationship

type ServiceRule

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

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

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

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

type TagAssignment

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

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

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 deprecated

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

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

Deprecated: Use ManageEventWithContext instead.

func ManageEventWithContext

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

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