pagerduty

package module
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2023 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

To add the latest stable version to your project:

go get github.com/Ardiannn08/go-pagerduty@v1.6

If you instead wish to work with the latest code from main:

go get github.com/Ardiannn08/go-pagerduty@latest

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 v1.5.0

As part of the v1.5.0 release, we have fixed 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.

If you are impacted by a breaking change in this release, you should audit the functionality you depended on as it may not have been working. If you cannot upgrade for some reason, the v1.4.x line of releases should still work. At the time of writing v1.4.3 was the latest, and we intend to backport any critical fixes for the time being.

Example Usage
package main

import (
	"fmt"
	"github.com/Ardiannn08/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/Ardiannn08/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("example")

client.SetDebugFlag(pagerduty.DebugCaptureLastResponse)

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

resp, ok := client.LastAPIResponse()
if ok { // resp is an *http.Response we can inspect
	body, err := httputil.DumpResponse(resp, true)
    // ...
}
Included Packages
webhookv3

Support for V3 of PagerDuty Webhooks is provided via the webhookv3 package. The intent is for this package to provide signature verification and decoding helpers.

Contributing

  1. Fork it ( https://github.com/Ardiannn08/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.7.0-alpha"

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 `json:"limit,omitempty"`
	Offset uint `json:"offset,omitempty"`
	More   bool `json:"more,omitempty"`
	Total  uint `json:"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 objects (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 is in the number of milliseconds into the day at which the
	// window starts.
	StartTime int `json:"start_time,omitempty"`

	// EndTime is the number of milliseconds into the day at which the window
	// ends.
	EndTime int `json:"end_time,omitempty"`
}

ActiveBetween represents an active_between object for setting a timeline for rules

type AddIncidentNotificationSubscribersResponse

type AddIncidentNotificationSubscribersResponse struct {
	Subscriptions []IncidentNotificationSubscriptionWithContext `json:"subscriptions,omitempty"`
}

AddIncidentNotificationSubscribersResponse is the response structure when calling the AddNotificationSubscribers API endpoint.

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,omitempty"`
	Config *AlertGroupParamsConfig `json:"config,omitempty"`
}

AlertGroupingParameters defines how alerts on the service will 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 AnalyticsIncidentResponse added in v1.9.0

type AnalyticsIncidentResponse struct {
	First    string                     `json:"first,omitempty"`
	Last     string                     `json:"last,omitempty"`
	Limit    uint                       `json:"limit,omitempty"`
	More     bool                       `url:"more,omitempty"`
	Order    string                     `json:"order,omitempty"`
	OrderBy  string                     `json:"order_by,omitempty"`
	Filter   *AnalyticsFilter           `json:"filters,omitempty"`
	TimeZone string                     `json:"time_zone,omitempty"`
	Data     []AnalyticsRawIncidentData `json:"data,omitempty"`
}

type AnalyticsRawIncidentData added in v1.9.0

type AnalyticsRawIncidentData struct {
	ID                        string `json:"id,omitempty"`
	TeamID                    string `json:"team_id,omitempty"`
	TeamName                  string `json:"team_name,omitempty"`
	ServiceID                 string `json:"service_id,omitempty"`
	ServiceName               string `json:"service_name,omitempty"`
	CreatedAt                 string `json:"created_at,omitempty"`
	ResolvedAt                string `json:"resolved_at,omitempty"`
	Description               string `json:"description,omitempty"`
	IncidentNumber            uint   `json:"incident_number,omitempty"`
	Urgency                   string `json:"urgency,omitempty"`
	Major                     bool   `json:"major,omitempty"`
	PriorityID                string `json:"priority_id,omitempty"`
	PriorityName              string `json:"priority_name,omitempty"`
	PriorityOrder             uint   `json:"priority_order,omitempty"`
	SecondsToResolve          uint   `json:"seconds_to_resolve,omitempty"`
	SecondsToFirstAck         uint   `json:"seconds_to_first_ack,omitempty"`
	SecondsToEngage           uint   `json:"seconds_to_engage,omitempty"`
	SecondsToMobilize         uint   `json:"seconds_to_mobilize,omitempty"`
	EngagedSeconds            uint   `json:"engaged_seconds,omitempty"`
	EngagedUserCount          uint   `json:"engaged_user_count,omitempty"`
	EscalationCount           uint   `json:"escalation_count,omitempty"`
	AssignmentCount           uint   `json:"assignment_count,omitempty"`
	BusinessHourInterruptions uint   `json:"business_hour_interruptions,omitempty"`
	SleepHourInterruptions    uint   `json:"sleep_hour_interruptions,omitempty"`
	OffHourInterruptions      uint   `json:"off_hour_interruptions,omitempty"`
	SnoozedSeconds            uint   `json:"snoozed_seconds,omitempty"`
	UserDefinedEffortsSeconds uint   `json:"user_defined_effort_seconds,omitempty"`
}

type AnalyticsRawIncidentsRequest added in v1.9.0

type AnalyticsRawIncidentsRequest struct {
	Filter        *AnalyticsFilter `json:"filters,omitempty"`
	StartingAfter string           `json:"starting_after,omitempty"`
	EndingBefore  string           `json:"ending_before,omitempty"`
	Order         string           `json:"order,omitempty"`
	OrderBy       string           `json:"order_by,omitempty"`
	Limit         uint             `json:"limit,omitempty"`
	TimeZone      string           `json:"time_zone,omitempty"`
}

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 AuditRecord

type AuditRecord struct {
	ID               string           `json:"id,omitempty"`
	Self             string           `json:"self,omitempty"`
	ExecutionTime    string           `json:"execution_time,omitempty"`
	ExecutionContext ExecutionContext `json:"execution_context,omitempty"`
	Actors           []APIObject      `json:"actors,omitempty"`
	Method           Method           `json:"method,omitempty"`
	RootResource     APIObject        `json:"root_resource,omitempty"`
	Action           string           `json:"action,omitempty"`
	Details          Details          `json:"details,omitempty"`
}

AuditRecord is a audit trail record that matches the query criteria.

type AutomationAction

type AutomationAction struct {
	Name       string                    `json:"name,omitempty"`
	URL        string                    `json:"url,omitempty"`
	AutoSend   bool                      `json:"auto_send,omitempty"`
	Headers    []*OrchestrationHeader    `json:"headers,omitempty"`
	Parameters []*OrchestrationParameter `json:"parameters,omitempty"`
}

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,omitempty"`
}

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,omitempty"`
}

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 {
	Summary       string                 `json:"summary"`
	Source        string                 `json:"source,omitempty"`
	Timestamp     string                 `json:"timestamp,omitempty"`
	CustomDetails map[string]interface{} `json:"custom_details,omitempty"`
}

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

func (c *Client) AddIncidentNotificationSubscribersWithContext(ctx context.Context, id string, subscribers []IncidentNotificationSubscriber) (*AddIncidentNotificationSubscribersResponse, error)

AddIncidentNotificationSubscribersWithContext adds notification subscribers for the specified incident.

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

AssignTags adds and removes tag assignments with entities.

Deprecated: Use AssignTagsWithContext instead.

func (*Client) AssignTagsWithContext

func (c *Client) AssignTagsWithContext(ctx context.Context, entityType, entityID string, a *TagAssignments) error

AssignTagsWithContext adds and removes tag assignments with entities. Permitted entity types are users, teams, and escalation_policies.

func (*Client) AssociateServiceDependencies deprecated

func (c *Client) AssociateServiceDependencies(dependencies *ListServiceDependencies) (*ListServiceDependencies, 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, 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) CreateIncidentStatusUpdate

func (c *Client) CreateIncidentStatusUpdate(ctx context.Context, id string, from string, message string) (IncidentStatusUpdate, error)

CreateIncidentStatusUpdate creates a new status update for the specified incident.

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

func (c *Client) CreateOrchestrationWithContext(ctx context.Context, e Orchestration) (*Orchestration, error)

CreateOrchestrationWithContext creates a new event orchestration.

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

func (c *Client) CreateResponsePlay(ctx context.Context, rp ResponsePlay) (ResponsePlay, error)

CreateResponsePlay creates a new response play.

func (*Client) CreateRuleset deprecated

func (c *Client) CreateRuleset(r *Ruleset) (*Ruleset, error)

CreateRuleset creates a new ruleset.

Deprecated: Use CreateRulesetWithContext instead.

func (*Client) CreateRulesetRule deprecated

func (c *Client) CreateRulesetRule(rulesetID string, rule *RulesetRule) (*RulesetRule, 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, 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, error)

CreateTag creates a new tag.

Deprecated: Use CreateTagWithContext instead.

func (*Client) CreateTagWithContext

func (c *Client) CreateTagWithContext(ctx context.Context, t *Tag) (*Tag, 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) DeleteOrchestrationWithContext

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

DeleteOrchestrationWithContext deletes an existing event orchestration.

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

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

DeleteResponsePlay deletes an existing response play.

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, 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) EnableExtension

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

EnableExtension enables a temporarily disabled extension by its ID.

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, 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, tagID 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, 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) GetOrchestrationRouterWithContext

func (c *Client) GetOrchestrationRouterWithContext(ctx context.Context, id string, o *GetOrchestrationRouterOptions) (*OrchestrationRouter, error)

GetOrchestrationRouterWithContext gets information about an event orchestration.

func (*Client) GetOrchestrationUnroutedWithContext

func (c *Client) GetOrchestrationUnroutedWithContext(ctx context.Context, id string, o *GetOrchestrationUnroutedOptions) (*OrchestrationUnrouted, error)

GetOrchestrationUnroutedWithContext gets the routing rules for unrouted events.

func (*Client) GetOrchestrationWithContext

func (c *Client) GetOrchestrationWithContext(ctx context.Context, id string, o *GetOrchestrationOptions) (*Orchestration, error)

GetOrchestrationWithContext gets information about an event orchestration.

func (*Client) GetRawIncidentsAnalytics added in v1.9.0

func (c *Client) GetRawIncidentsAnalytics(ctx context.Context, r AnalyticsRawIncidentsRequest) (AnalyticsIncidentResponse, error)

func (*Client) GetResponsePlay

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

GetResponsePlay gets details about an existing response play.

func (*Client) GetRuleset deprecated

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

GetRuleset gets details about a ruleset.

Deprecated: Use GetRulesetWithContext instead.

func (*Client) GetRulesetRule deprecated

func (c *Client) GetRulesetRule(rulesetID, ruleID string) (*RulesetRule, 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) GetServiceOrchestrationActiveWithContext

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

GetServiceOrchestrationActiveWithContext gets a service orchestration's active status.

func (*Client) GetServiceOrchestrationWithContext

func (c *Client) GetServiceOrchestrationWithContext(ctx context.Context, id string, o *GetServiceOrchestrationOptions) (*ServiceOrchestration, error)

GetServiceOrchestrationWithContext gets information about a service orchestration.

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, 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, 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, tagID 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, tagID 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 deprecated

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

ListAllMembers gets all members associated with the specified team.

Deprecated: Use ListTeamMembersPaginated instead.

func (*Client) ListAuditRecords

ListAuditRecords lists audit trial records matching provided query params or default criteria.

func (*Client) ListAuditRecordsPaginated

func (c *Client) ListAuditRecordsPaginated(ctx context.Context, o ListAuditRecordsOptions, include func(AuditRecord) bool) ([]AuditRecord, error)

ListAuditRecordsPaginated lists audit trial records matching provided query params or default criteria, processing paginated responses. The include function decides whether or not to include a specific AuditRecord in the final result. If the include function is nil, all audit records from the API are included by default.

func (*Client) ListBusinessServiceDependencies deprecated

func (c *Client) ListBusinessServiceDependencies(businessServiceID string) (*ListServiceDependencies, 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) ListIncidentNotificationSubscribersWithContext

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

ListIncidentNotificationSubscribersWithContext lists notification subscribers 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 ListTeamMembersOptions) (*ListTeamMembersResponse, error)

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

Deprecated: Use ListTeamMembers instead.

func (*Client) ListMembersPaginated deprecated

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

ListMembersPaginated gets all members associated with the specified team.

Deprecated: Use ListTeamMembersPaginated instead.

func (*Client) ListMembersWithContext deprecated

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

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

Deprecated: Use ListTeamMembers instead.

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

func (c *Client) ListOrchestrationsWithContext(ctx context.Context, o ListOrchestrationsOptions) (*ListOrchestrationsResponse, error)

ListOrchestrationsWithContext lists all the existing event orchestrations.

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() (*ListPrioritiesResponse, error)

ListPriorities lists existing priorities.

Deprecated: Use ListPrioritiesWithContext instead.

func (*Client) ListPrioritiesWithContext

func (c *Client) ListPrioritiesWithContext(ctx context.Context, o ListPrioritiesOptions) (*ListPrioritiesResponse, error)

ListPrioritiesWithContext lists existing priorities.

func (*Client) ListResponsePlays

func (c *Client) ListResponsePlays(ctx context.Context, o ListResponsePlaysOptions) ([]ResponsePlay, error)

ListResponsePlays lists existing response plays.

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

func (c *Client) ListTeamMembers(ctx context.Context, teamID string, o ListTeamMembersOptions) (*ListTeamMembersResponse, error)

ListTeamMembers gets a page of users associated with the specified team.

func (*Client) ListTeamMembersPaginated

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

ListTeamMembersPaginated gets all members associated with the specified team.

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

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

ManageIncidentAlerts 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. Nothing is returned from this method, because the API should return the Schedule as we posted it. If this method call returns no error, the schedule should be valid and can be updated.

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

func (c *Client) RemoveIncidentNotificationSubscribersWithContext(ctx context.Context, id string, subscribers []IncidentNotificationSubscriber) (*RemoveIncidentNotificationSubscribersResponse, error)

RemoveIncidentNotificationSubscribersWithContext removes notification subscribers for the specified incident.

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

func (c *Client) RunResponsePlay(ctx context.Context, from string, responsePlayID string, incidentID string) error

RunResponsePlay runs a response play on a given 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, 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) UpdateOrchestrationRouterWithContext

func (c *Client) UpdateOrchestrationRouterWithContext(ctx context.Context, id string, e OrchestrationRouter) (*OrchestrationRouter, error)

UpdateOrchestrationRouterWithContext updates the routing rules of an existing event orchestration.

func (*Client) UpdateOrchestrationUnroutedWithContext

func (c *Client) UpdateOrchestrationUnroutedWithContext(ctx context.Context, id string, e OrchestrationUnrouted) (*OrchestrationUnrouted, error)

UpdateOrchestrationUnroutedWithContext updates the routing rules for unrouted events.

func (*Client) UpdateOrchestrationWithContext

func (c *Client) UpdateOrchestrationWithContext(ctx context.Context, id string, e Orchestration) (*Orchestration, error)

UpdateOrchestrationWithContext updates an existing event orchestration.

func (*Client) UpdateResponsePlay

func (c *Client) UpdateResponsePlay(ctx context.Context, rp ResponsePlay) (ResponsePlay, error)

UpdateResponsePlay updates an existing response play.

func (*Client) UpdateRuleset deprecated

func (c *Client) UpdateRuleset(r *Ruleset) (*Ruleset, error)

UpdateRuleset updates a ruleset.

Deprecated: Use UpdateRulesetWithContext instead.

func (*Client) UpdateRulesetRule deprecated

func (c *Client) UpdateRulesetRule(rulesetID, ruleID string, r *RulesetRule) (*RulesetRule, 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, 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) UpdateServiceOrchestrationActiveWithContext

func (c *Client) UpdateServiceOrchestrationActiveWithContext(ctx context.Context, id string, e ServiceOrchestrationActive) (*ServiceOrchestrationActive, error)

UpdateServiceOrchestrationActiveWithContext updates a service orchestration's active status.

func (*Client) UpdateServiceOrchestrationWithContext

func (c *Client) UpdateServiceOrchestrationWithContext(ctx context.Context, id string, e ServiceOrchestration) (*ServiceOrchestration, error)

UpdateServiceOrchestrationWithContext updates the routing rules of a service orchestration.

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"`
	Assignees              []APIObject       `json:"assignees,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 is the phone number of the conference call for the
	// conference bridge. Phone numbers should be formatted like
	// +1 415-555-1212,,,,1234#, where a comma (,) represents a one-second
	// wait and pound (#) completes access code input.
	ConferenceNumber string `json:"conference_number,omitempty"`

	// ConferenceURL is the URL for the conference bridge. This could be a link
	// to a video conference or Slack channel.
	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,omitempty"`
	Type           string `json:"type,omitempty"`
	Summary        string `json:"summary,omitempty"`
	Self           string `json:"self,omitempty"`
	HTMLURL        string `json:"html_url,omitempty"`
	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"`
}

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 is the type of API object this is.
	//
	// Deprecated: Because the Type field can only have the value of "incident"
	// when creating an incident, the CreateIncident* methods always set this
	// value to "incident". Any other value will be overwritten. This will be
	// removed in v2.0.0.
	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"`
	ConferenceBridge *ConferenceBridge `json:"conference_bridge,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 LastAPIResponse() 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 Details

type Details struct {
	Resource APIObject `json:"resource,omitempty"`
	// A set of fields that have been affected.
	// The fields that have not been affected MAY be returned.
	Fields []Field `json:"fields,omitempty"`
	// A set of references that have been affected.
	References []Reference `json:"references,omitempty"`
}

Details contain additional information about the action or the resource that has been audited.

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"`
	OnCallHandoffNotifications string           `json:"on_call_handoff_notifications,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 EventsAPIV2Error

type EventsAPIV2Error 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 NullEventsAPIV2ErrorObject
	// contains filtered or unexported fields
}

EventsAPIV2Error represents the error response received when an Events API V2 call fails. The HTTP response code is set inside of the StatusCode field, with the EventsAPIV2Error field being the wrapper around the JSON error object returned from the Events API V2.

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

func (EventsAPIV2Error) APITimeout

func (e EventsAPIV2Error) APITimeout() bool

APITimeout returns whether whether the response had a status of 408, indicating there was a request timeout on PagerDuty's side. This error is considered temporary, and so the request should be retried.

Please note, this does not returnn true if the Go context.Context deadline was exceeded when making the request.

func (EventsAPIV2Error) BadRequest

func (e EventsAPIV2Error) BadRequest() bool

BadRequest returns whether the event request was rejected by PagerDuty as an incorrect or invalid event structure.

func (EventsAPIV2Error) Error

func (e EventsAPIV2Error) Error() string

Error satisfies the error interface, and should contain the StatusCode, APIError.Message, APIError.ErrorObject.Status, and APIError.Errors.

func (EventsAPIV2Error) RateLimited

func (e EventsAPIV2Error) 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 (EventsAPIV2Error) Temporary

func (e EventsAPIV2Error) Temporary() bool

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

func (*EventsAPIV2Error) UnmarshalJSON

func (e *EventsAPIV2Error) UnmarshalJSON(data []byte) error

UnmarshalJSON satisfies encoding/json.Unmarshaler.

type EventsAPIV2ErrorObject

type EventsAPIV2ErrorObject struct {
	Status  string `json:"status,omitempty"`
	Message string `json:"message,omitempty"`

	// Errors is likely to be empty, with the relevant error presented via the
	// Status field instead.
	Errors []string `json:"errors,omitempty"`
}

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

type ExecutionContext

type ExecutionContext struct {
	RequestID     string `json:"request_id,omitempty"`
	RemoteAddress string `json:"remote_address,omitempty"`
}

ExecutionContext contains information about the action execution context.

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"`
	TemporarilyDisabled bool        `json:"temporarily_disabled,omitempty"`
}

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 Field

type Field struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	Value       string `json:"value,omitempty"`
	BeforeValue string `json:"before_value,omitempty"`
}

Field contains information about the resource field that have been affected.

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 GetOrchestrationOptions

type GetOrchestrationOptions struct {
}

GetOrchestrationOptions is the data structure used when calling the GetOrchestration API endpoint.

type GetOrchestrationRouterOptions

type GetOrchestrationRouterOptions struct {
}

GetOrchestrationRouterOptions is the data structure used when calling the GetOrchestrationRouter API endpoint.

type GetOrchestrationUnroutedOptions

type GetOrchestrationUnroutedOptions struct {
}

GetOrchestrationUnroutedOptions is the data structure used when calling the GetOrchestrationUnrouted API endpoint.

type GetScheduleOptions

type GetScheduleOptions struct {
	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 GetServiceOrchestrationOptions

type GetServiceOrchestrationOptions struct {
}

GetServiceOrchestrationOptions is the data structure used when calling the GetServiceOrchestration 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"`
	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"`
	AssignedVia          string               `json:"assigned_via,omitempty"`
	Occurrence           *Occurrence          `json:"occurrence,omitempty"`
	IncidentResponders   []IncidentResponders `json:"incidents_responders,omitempty"`
	ResponderRequests    []ResponderRequest   `json:"responder_requests,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"`

	// Alerts is the list of alerts within this incident. Each item in the slice
	// is not fully hydrated, so only the AlertKey field will be set.
	Alerts []IncidentAlert `json:"alerts,omitempty"`

	// Description is deprecated, use Title instead.
	Description string `json:"description"`
}

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 IncidentNotificationSubscriber

type IncidentNotificationSubscriber struct {
	SubscriberID   string `json:"subscriber_id"`
	SubscriberType string `json:"subscriber_type"`
}

IncidentNotificationSubscriber is a Notification Subscriber on a Incident.

type IncidentNotificationSubscriberVia

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

type IncidentNotificationSubscriptionWithContext

type IncidentNotificationSubscriptionWithContext struct {
	IncidentNotificationSubscriber
	HasIndirectSubscription bool                                `json:"has_indirect_subscription,omitempty"`
	SubscribedVia           []IncidentNotificationSubscriberVia `json:"subscribed_via,omitempty"`
	SubscribableID          string                              `json:"subscribable_id,omitempty"`
	SubscribableType        string                              `json:"subscribable_type,omitempty"`
	AccountID               string                              `json:"account_id,omitempty"`
	Result                  string                              `json:"result,omitempty"`
}

IncidentNotificationSubscriptionWithContext contains extra context returned from the API.

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 IncidentStatusUpdate

type IncidentStatusUpdate struct {
	ID        string    `json:"id"`
	Message   string    `json:"message"`
	CreatedAt string    `json:"created_at"`
	Sender    APIObject `json:"sender"`
}

IncidentStatusUpdate is a status update for the specified 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"`
	IntegrationKey   string                       `json:"integration_key,omitempty"`
	IntegrationEmail string                       `json:"integration_email,omitempty"`
	EmailFilterMode  IntegrationEmailFilterMode   `json:"email_filter_mode,omitempty"`
	EmailFilters     []IntegrationEmailFilterRule `json:"email_filters,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 IntegrationEmailFilterMode

type IntegrationEmailFilterMode uint8

IntegrationEmailFilterMode is a type to respresent the different filter modes for a Generic Email Integration. This defines how the email filter rules (IntegrationEmailFilterRuleMode) are used when emails are ingested.

const (
	// EmailFilterModeInvalid only exists to make it harder to use values of
	// this type incorrectly. Please instead use one of EmailFilterModeAll,
	// EmailFilterModeOr, EmailFilterModeAnd
	//
	// This value should not get marshaled to JSON by the encoding/json package.
	EmailFilterModeInvalid IntegrationEmailFilterMode = iota

	// EmailFilterModeAll means that all incoming email will be be accepted, and
	// no email rules will be considered.
	EmailFilterModeAll

	// EmailFilterModeOr instructs the email filtering system to accept the
	// email if one or more rules match the message.
	EmailFilterModeOr

	// EmailFilterModeAnd instructs the email filtering system to accept the
	// email only if all of the rules match the message.
	EmailFilterModeAnd
)

func (IntegrationEmailFilterMode) MarshalJSON

func (i IntegrationEmailFilterMode) MarshalJSON() ([]byte, error)

MarshalJSON satisfies json.Marshaler

func (IntegrationEmailFilterMode) String

func (*IntegrationEmailFilterMode) UnmarshalJSON

func (i *IntegrationEmailFilterMode) UnmarshalJSON(b []byte) error

UnmarshalJSON satisfies json.Unmarshaler

type IntegrationEmailFilterRule

type IntegrationEmailFilterRule struct {
	// SubjectMode and SubjectRegex control the behaviors of how this filter
	// matches the subject of an inbound email.
	SubjectMode  IntegrationEmailFilterRuleMode `json:"subject_mode,omitempty"`
	SubjectRegex *string                        `json:"subject_regex,omitempty"`

	// BodyMode and BodyRegex control the behaviors of how this filter matches
	// the body of an inbound email.
	BodyMode  IntegrationEmailFilterRuleMode `json:"body_mode,omitempty"`
	BodyRegex *string                        `json:"body_regex,omitempty"`

	FromEmailMode  IntegrationEmailFilterRuleMode `json:"from_email_mode,omitempty"`
	FromEmailRegex *string                        `json:"from_email_regex,omitempty"`
}

IntegrationEmailFilterRule represents a single email filter rule for an integration of type generic_email_inbound_integration. Information about how to configure email rules can be found here: https://support.pagerduty.com/docs/email-management-filters-and-rules.

func (*IntegrationEmailFilterRule) UnmarshalJSON

func (i *IntegrationEmailFilterRule) UnmarshalJSON(b []byte) error

UnmarshalJSON satisfies json.Unmarshaler.

type IntegrationEmailFilterRuleMode

type IntegrationEmailFilterRuleMode uint8

IntegrationEmailFilterRuleMode is a type to represent the different matching modes of Generic Email Integration Filer Rules without consumers of this package needing to be intimately familiar with the specifics of the REST API.

const (
	// EmailFilterRuleModeInvalid only exists to make it harder to use values of this
	// type incorrectly. Please instead use one of EmailFilterRuleModeAlways,
	// EmailFilterRuleModeMatch, or EmailFilterRuleModeNoMatch.
	//
	// This value should not get marshaled to JSON by the encoding/json package.
	EmailFilterRuleModeInvalid IntegrationEmailFilterRuleMode = iota

	// EmailFilterRuleModeAlways means that the specific value can be anything. Any
	// associated regular expression will be ignored.
	EmailFilterRuleModeAlways

	// EmailFilterRuleModeMatch means that the associated regular expression must
	// match the associated value.
	EmailFilterRuleModeMatch

	// EmailFilterRuleModeNoMatch means that the associated regular expression must NOT
	// match the associated value.
	EmailFilterRuleModeNoMatch
)

func (IntegrationEmailFilterRuleMode) MarshalJSON

func (i IntegrationEmailFilterRuleMode) MarshalJSON() ([]byte, error)

MarshalJSON satisfies json.Marshaler

func (IntegrationEmailFilterRuleMode) String

func (*IntegrationEmailFilterRuleMode) UnmarshalJSON

func (i *IntegrationEmailFilterRuleMode) UnmarshalJSON(b []byte) error

UnmarshalJSON satisfies json.Unmarshaler

type ListAbilityResponse

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

ListAbilityResponse is the response when calling the ListAbility API endpoint.

type ListAddonOptions

type ListAddonOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 ListAuditRecordsOptions

type ListAuditRecordsOptions struct {
	Actions              []string `url:"actions,omitempty,brackets"`
	ActorID              string   `url:"actor_id,omitempty"`
	ActorType            string   `url:"actor_type,omitempty"`
	Cursor               string   `url:"cursor,omitempty"`
	Limit                uint     `url:"limit,omitempty"`
	MethodTruncatedToken string   `url:"method_truncated_token,omitempty"`
	MethodType           string   `url:"method_type,omitempty"`
	RootResourcesTypes   []string `url:"root_resources_types,omitempty,brackets"`
	Since                string   `url:"since,omitempty"`
	Until                string   `url:"until,omitempty"`
}

ListAuditRecordsOptions is the data structure used when calling the ListAuditRecords API endpoint.

type ListAuditRecordsResponse

type ListAuditRecordsResponse struct {
	Records []AuditRecord `json:"records,omitempty"`
	// ResponseMetadata is not a required field in the pagerduty API response,
	// using a pointer allows us to not marshall an empty ResponseMetaData struct
	// into a JSON.
	ResponseMetaData *ResponseMetadata `json:"response_metadata,omitempty"`
	Limit            uint              `json:"limit,omitempty"`
	// NextCursor is an  opaque string that will deliver the next set of results
	// when provided as the cursor parameter in a subsequent request.
	// A null value for this field indicates that there are no additional results.
	// We use a pointer here to marshall the string value into null
	// when NextCursor is an empty string.
	NextCursor *string `json:"next_cursor"`
}

ListAuditRecordsResponse is the response data received when calling the ListAuditRecords API endpoint.

type ListBusinessServiceOptions

type ListBusinessServiceOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`
}

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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 ListIncidentNotificationSubscribersResponse

type ListIncidentNotificationSubscribersResponse struct {
	APIListObject
	Subscribers []IncidentNotificationSubscriptionWithContext `json:"subscribers,omitempty"`
	AccountID   string                                        `json:"account_id,omitempty"`
}

ListIncidentNotificationSubscribersResponse is the response structure when calling the ListNotificationSubscribers API endpoint.

type ListIncidentsOptions

type ListIncidentsOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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"`
	TeamIDs    []string `url:"team_ids,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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 deprecated

type ListMembersOptions = ListTeamMembersOptions

ListMembersOptions is the original type name and is retained as an alias for API compatibility.

Deprecated: Use type ListTeamMembersOptions instead; will be removed in V2

type ListMembersResponse deprecated

type ListMembersResponse = ListTeamMembersResponse

ListMembersResponse is the original type name and is retained as an alias for API compatibility.

Deprecated: Use type ListTeamMembersResponse instead; will be removed in V2

type ListNotificationOptions

type ListNotificationOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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,brackets"`
}

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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	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 ListOrchestrationsOptions

type ListOrchestrationsOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	SortBy string `url:"sort_by,omitempty"`
}

ListOrchestrationsOptions is the data structure used when calling the ListOrchestrations API endpoint.

type ListOrchestrationsResponse

type ListOrchestrationsResponse struct {
	APIListObject
	Orchestrations []Orchestration `json:"orchestrations"`
}

ListOrchestrationsResponse is the data structure returned from calling the ListOrchestrations API endpoint.

type ListOverridesOptions

type ListOverridesOptions struct {
	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 {
	Overrides []Override `json:"overrides,omitempty"`
}

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

type ListPrioritiesOptions

type ListPrioritiesOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`
}

ListPrioritiesOptions is the data structure used when calling the ListPriorities API endpoint.

type ListPrioritiesResponse

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

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

type ListResponsePlaysOptions

type ListResponsePlaysOptions struct {
	// FilterForManualRun limits results to show only response plays that can be
	// invoked manually.
	FilterForManualRun bool `url:"filter_for_manual_run,omitempty"`

	Query string `url:"query,omitempty"`
}

ListResponsePlaysOptions are the options for listing response plays.

type ListResponsePlaysResponse

type ListResponsePlaysResponse struct {
	ResponsePlays []ResponsePlay `json:"response_plays"`
}

ListResponsePlaysResponse represents the list of response plays.

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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	Query    string   `url:"query,omitempty"`
	Includes []string `url:"include,omitempty,brackets"`
}

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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 ListTeamMembersOptions

type ListTeamMembersOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`
}

ListTeamMembersOptions are the optional parameters for a members request.

type ListTeamMembersResponse

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

ListTeamMembersResponse is the response from the members endpoint.

type ListTeamOptions

type ListTeamOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,omitempty"`

	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 `json:"users"`
}

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

type ListVendorOptions

type ListVendorOptions struct {
	// Limit is the pagination parameter that limits the number of results per
	// page. PagerDuty defaults this value to 25 if omitted, and sets an upper
	// bound of 100.
	Limit uint `url:"limit,omitempty"`

	// Offset is the pagination parameter that specifies the offset at which to
	// start pagination results. When trying to request the next page of
	// results, the new Offset value should be currentOffset + Limit.
	Offset uint `url:"offset,omitempty"`

	// Total is the pagination parameter to request that the API return the
	// total count of items in the response. If this field is omitted or set to
	// false, the total number of results will not be sent back from the PagerDuty API.
	//
	// Setting this to true will slow down the API response times, and so it's
	// recommended to omit it unless you've a specific reason for wanting the
	// total count of items in the collection.
	Total bool `url:"total,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"`
	Service  APIObject `json:"service"`
	User     APIObject `json:"user"`
}

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          []APIObject `json:"teams,omitempty"`
	CreatedBy      *APIObject  `json:"created_by,omitempty"`
}

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 is the type of API object this is.
	//
	// Deprecated: Because the Type field can only have the value of "incident"
	// or "incident_reference" when managing an incident, the CreateIncident*
	// methods always set this value to "incident" because this struct is not an
	// incident_reference. Any other value will be overwritten. This will be
	// removed in v2.0.0.
	Type             string            `json:"type"`
	Status           string            `json:"status,omitempty"`
	Title            string            `json:"title,omitempty"`
	Priority         *APIReference     `json:"priority,omitempty"`
	Assignments      []Assignee        `json:"assignments,omitempty"`
	EscalationLevel  uint              `json:"escalation_level,omitempty"`
	EscalationPolicy *APIReference     `json:"escalation_policy,omitempty"`
	Resolution       string            `json:"resolution,omitempty"`
	ConferenceBridge *ConferenceBridge `json:"conference_bridge,omitempty"`
}

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

type Member

type Member struct {
	User 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 Method

type Method struct {
	Description    string `json:"description,omitempty"`
	TruncatedToken string `json:"truncated_token,omitempty"`
	Type           string `json:"type,omitempty"`
}

Method contains information on the method used to perform the action.

type Notification

type Notification struct {
	ID                string    `json:"id"`
	Type              string    `json:"type"`
	StartedAt         string    `json:"started_at"`
	Address           string    `json:"address"`
	User              APIObject `json:"user"`
	ConferenceAddress string    `json:"conferenceAddress"`
	Status            string    `json:"status"`
}

Notification is a message containing the details of the incident.

type NotificationRule

type NotificationRule 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"`
	StartDelayInMinutes uint          `json:"start_delay_in_minutes"`
	CreatedAt           string        `json:"created_at"`
	ContactMethod       ContactMethod `json:"contact_method"`
	Urgency             string        `json:"urgency"`
}

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 consumers 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 NullEventsAPIV2ErrorObject

type NullEventsAPIV2ErrorObject struct {
	Valid       bool
	ErrorObject EventsAPIV2ErrorObject
}

NullEventsAPIV2ErrorObject is a wrapper around the EventsAPIV2ErrorObject 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.

We assume it's possible in exceptional failure modes for error objects to be omitted by PagerDuty. As such, this wrapper type provides us a way to check if the object was provided while avoiding consumers accidentally missing a nil pointer check, thus crashing their whole program.

type Occurrence

type Occurrence struct {
	Count     uint   `json:"count,omitempty"`
	Frequency uint   `json:"frequency,omitempty"`
	Category  string `json:"category,omitempty"`
	Since     string `json:"since,omitempty"`
	Until     string `json:"until,omitempty"`
}

Occurrence is the data around whether this is a reocurring issue.

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 Orchestration

type Orchestration struct {
	APIObject
	Name         string                      `json:"name,omitempty"`
	Description  string                      `json:"description,omitempty"`
	Team         *APIReference               `json:"team,omitempty"`
	Integrations []*OrchestrationIntegration `json:"integrations,omitempty"`
	Routes       uint                        `json:"routes,omitempty"`
	CreatedAt    string                      `json:"created_at,omitempty"`
	CreatedBy    *APIReference               `json:"created_by,omitempty"`
	UpdatedAt    string                      `json:"updated_at,omitempty"`
	UpdatedBy    *APIReference               `json:"updated_by,omitempty"`
	Version      string                      `json:"version,omitempty"`
}

Orchestration defines a global orchestration to route events the same source to different services.

type OrchestrationExtraction

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

OrchestrationExtraction defines a value extraction in an orchestration rule.

type OrchestrationHeader

type OrchestrationHeader struct {
	Key   string `json:"key,omitempty"`
	Value string `json:"value,omitempty"`
}

type OrchestrationIntegration

type OrchestrationIntegration struct {
	ID         string                              `json:"id,omitempty"`
	Parameters *OrchestrationIntegrationParameters `json:"parameters,omitempty"`
}

OrchestrationIntegration is a route into an orchestration.

type OrchestrationIntegrationParameters

type OrchestrationIntegrationParameters struct {
	RoutingKey string `json:"routing_key,omitempty"`
	Type       string `json:"type,omitempty"`
}

type OrchestrationParameter

type OrchestrationParameter struct {
	Key   string `json:"key,omitempty"`
	Value string `json:"value,omitempty"`
}

type OrchestrationRouter

type OrchestrationRouter struct {
	Type      string                           `json:"type,omitempty"`
	Parent    *APIReference                    `json:"parent,omitempty"`
	Sets      []*OrchestrationRouterRuleSet    `json:"sets,omitempty"`
	CatchAll  *OrchestrationRouterCatchAllRule `json:"catch_all,omitempty"`
	CreatedAt string                           `json:"created_at,omitempty"`
	CreatedBy *APIReference                    `json:"created_by,omitempty"`
	UpdatedAt string                           `json:"updated_at,omitempty"`
	UpdatedBy *APIReference                    `json:"updated_by,omitempty"`
	Version   string                           `json:"version,omitempty"`
}

OrchestrationRouter is an event router.

type OrchestrationRouterActions

type OrchestrationRouterActions struct {
	RouteTo string `json:"route_to,omitempty"`
}

OrchestrationRouterActions are the actions that will be taken to change the resulting alert and incident.

type OrchestrationRouterCatchAllRule

type OrchestrationRouterCatchAllRule struct {
	Actions *OrchestrationRouterActions `json:"actions,omitempty"`
}

OrchestrationRouterCatchAllRule routes an event when none of the rules match an event.

type OrchestrationRouterRule

type OrchestrationRouterRule struct {
	ID         string                              `json:"id,omitempty"`
	Label      string                              `json:"label,omitempty"`
	Conditions []*OrchestrationRouterRuleCondition `json:"conditions,omitempty"`
	Actions    *OrchestrationRouterActions         `json:"actions,omitempty"`
	Disabled   bool                                `json:"disabled,omitempty"`
}

type OrchestrationRouterRuleCondition

type OrchestrationRouterRuleCondition struct {
	Expression string `json:"expression,omitempty"`
}

type OrchestrationRouterRuleSet

type OrchestrationRouterRuleSet struct {
	ID    string                     `json:"id,omitempty"`
	Rules []*OrchestrationRouterRule `json:"rules,omitempty"`
}

type OrchestrationUnrouted

type OrchestrationUnrouted struct {
	Type      string                             `json:"type,omitempty"`
	Parent    *APIReference                      `json:"parent,omitempty"`
	Sets      []*ServiceOrchestrationRuleSet     `json:"sets,omitempty"`
	CatchAll  *OrchestrationUnroutedCatchAllRule `json:"catch_all,omitempty"`
	CreatedAt string                             `json:"created_at,omitempty"`
	CreatedBy *APIReference                      `json:"created_by,omitempty"`
	UpdatedAt string                             `json:"updated_at,omitempty"`
	UpdatedBy *APIReference                      `json:"updated_by,omitempty"`
	Version   string                             `json:"version,omitempty"`
}

OrchestrationUnrouted defines sets of rules to be applied to unrouted events.

type OrchestrationUnroutedCatchAllRule

type OrchestrationUnroutedCatchAllRule struct {
	Actions *OrchestrationUnroutedRuleActions `json:"actions,omitempty"`
}

type OrchestrationUnroutedRule

type OrchestrationUnroutedRule struct {
	ID         string                                `json:"id,omitempty"`
	Label      string                                `json:"label,omitempty"`
	Conditions []*OrchestrationUnroutedRuleCondition `json:"conditions,omitempty"`
	Actions    *OrchestrationUnroutedRuleActions     `json:"actions,omitempty"`
	Disabled   bool                                  `json:"disabled,omitempty"`
}

type OrchestrationUnroutedRuleActions

type OrchestrationUnroutedRuleActions struct {
	RouteTo     string                     `json:"route_to,omitempty"`
	Severity    string                     `json:"severity,omitempty"`
	EventAction string                     `json:"event_action,omitempty"`
	Variables   []*OrchestrationVariable   `json:"variables,omitempty"`
	Extractions []*OrchestrationExtraction `json:"extractions,omitempty"`
}

OrchestrationUnroutedRuleActions are the actions that will be taken to change the resulting alert and incident.

type OrchestrationUnroutedRuleCondition

type OrchestrationUnroutedRuleCondition struct {
	Expression string `json:"expression,omitempty"`
}

type OrchestrationUnroutedRuleSet

type OrchestrationUnroutedRuleSet struct {
	ID    string                       `json:"id,omitempty"`
	Rules []*OrchestrationUnroutedRule `json:"rules,omitempty"`
}

type OrchestrationVariable

type OrchestrationVariable struct {
	Name  string `json:"name,omitempty"`
	Path  string `json:"path,omitempty"`
	Type  string `json:"type,omitempty"`
	Value string `json:"value,omitempty"`
}

OrchestrationVariable defines a variable in an orchestration rule.

type Override

type Override 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"`
	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 PagerDutyAutomationAction

type PagerDutyAutomationAction struct {
	ActionID string `json:"action_id,omitempty"`
}

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 {
	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 deprecated

type Priorities = ListPrioritiesResponse

Priorities is the original type name and is retained as an alias for API compatibility.

Deprecated: Use type ListPrioritiesResponse instead; will be removed in V2

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 deprecated

type PriorityProperty = Priority

PriorityProperty is the original type name and is retained as an alias for API compatibility.

Deprecated: Use type Priority instead; will be removed in V2

type Reference

type Reference struct {
	Name        string      `json:"name,omitempty"`
	Description string      `json:"description,omitempty"`
	Added       []APIObject `json:"added,omitempty"`
	Removed     []APIObject `json:"removed,omitempty"`
}

Reference contains information about the reference that have been affected.

type RemoveIncidentNotificationSubscribersResponse

type RemoveIncidentNotificationSubscribersResponse struct {
	DeleteCount       uint `json:"deleted_count"`
	UnauthorizedCount uint `json:"unauthorized_count"`
	NonExistentCount  uint `json:"non_existent_count"`
}

RemoveIncidentNotificationSubscribersResponse is the response structure when calling the RemoveNotificationSubscriber API 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     []ResponderRequestTargetWrapper `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     []ResponderRequestTargetWrapper `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,omitempty"`
}

ResponderRequestTarget specifies an individual target for the responder request.

type ResponderRequestTargetWrapper

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

ResponderRequestTargetWrapper is a wrapper for a ResponderRequestTarget.

type ResponseMetadata

type ResponseMetadata struct {
	Messages []string `json:"messages,omitempty"`
}

ResponseMetadata contains information about the response.

type ResponsePlay

type ResponsePlay 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"`
	Name               string          `json:"name,omitempty"`
	Description        string          `json:"description"`
	Team               *APIReference   `json:"team,omitempty"`
	Subscribers        []*APIReference `json:"subscribers,omitempty"`
	SubscribersMessage string          `json:"subscribers_message"`
	Responders         []*APIReference `json:"responders,omitempty"`
	RespondersMessage  string          `json:"responders_message"`
	Runnability        *string         `json:"runnability"`
	ConferenceNumber   *string         `json:"conference_number"`
	ConferenceURL      *string         `json:"conference_url"`
	ConferenceType     *string         `json:"conference_type"`
}

ResponsePlay represents the API object for a response object:

https://developer.pagerduty.com/api-reference/b3A6Mjc0ODE2Ng-create-a-response-play

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 specifies for how long to suspend the alert in seconds.
	Value int `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"`
	Self        string         `json:"self,omitempty"`
	RoutingKeys []string       `json:"routing_keys,omitempty"`
	CreatedAt   string         `json:"created_at"`
	Creator     *RulesetObject `json:"creator,omitempty"`
	UpdatedAt   string         `json:"updated_at"`
	Updater     *RulesetObject `json:"updater,omitempty"`
	Team        *RulesetObject `json:"team,omitempty"`
}

Ruleset represents a ruleset.

type RulesetObject

type RulesetObject struct {
	ID   string `json:"id,omitempty"`
	Type string `json:"type,omitempty"`
	Self string `json:"self,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"`
	Self       string          `json:"self,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"`
	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               []APIObject     `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 is a 0 indexed slice of days, where 0 is Sunday and 6 is
	// Saturday, when the window is scheduled for.
	Weekdays []int `json:"weekdays,omitempty"`

	Timezone string `json:"timezone,omitempty"`

	// StartTime is the number of milliseconds into the day at which the window
	// starts.
	StartTime int `json:"start_time,omitempty"`

	// Duration is the window duration in milliseconds.
	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,omitempty"`
	AcknowledgementTimeout  *uint                    `json:"acknowledgement_timeout,omitempty"`
	CreateAt                string                   `json:"created_at,omitempty"`
	Status                  string                   `json:"status,omitempty"`
	LastIncidentTimestamp   string                   `json:"last_incident_timestamp,omitempty"`
	Integrations            []Integration            `json:"integrations,omitempty"`
	EscalationPolicy        EscalationPolicy         `json:"escalation_policy,omitempty"`
	Teams                   []Team                   `json:"teams,omitempty"`
	IncidentUrgencyRule     *IncidentUrgencyRule     `json:"incident_urgency_rule,omitempty"`
	SupportHours            *SupportHours            `json:"support_hours,omitempty"`
	ScheduledActions        []ScheduledAction        `json:"scheduled_actions,omitempty"`
	AlertCreation           string                   `json:"alert_creation,omitempty"`
	AlertGrouping           string                   `json:"alert_grouping,omitempty"`
	AlertGroupingTimeout    *uint                    `json:"alert_grouping_timeout,omitempty"`
	AlertGroupingParameters *AlertGroupingParameters `json:"alert_grouping_parameters,omitempty"`
	ResponsePlay            *APIObject               `json:"response_play,omitempty"`
	Addons                  []Addon                  `json:"addons,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 ServiceOrchestration

type ServiceOrchestration struct {
	Type     string                            `json:"type,omitempty"`
	Parent   *APIReference                     `json:"parent,omitempty"`
	Sets     []*ServiceOrchestrationRuleSet    `json:"sets,omitempty"`
	CatchAll *ServiceOrchestrationCatchAllRule `json:"catch_all,omitempty"`

	CreatedAt string        `json:"created_at,omitempty"`
	CreatedBy *APIReference `json:"created_by,omitempty"`
	UpdatedAt string        `json:"updated_at,omitempty"`
	UpdatedBy *APIReference `json:"updated_by,omitempty"`
	Version   string        `json:"version,omitempty"`
}

ServiceOrchestration defines sets of rules belonging to a service.

type ServiceOrchestrationActive

type ServiceOrchestrationActive struct {
	Active bool `json:"active,omitempty"`
}

type ServiceOrchestrationCatchAllRule

type ServiceOrchestrationCatchAllRule struct {
	Actions *ServiceOrchestrationRuleActions `json:"actions,omitempty"`
}

type ServiceOrchestrationRule

type ServiceOrchestrationRule struct {
	ID         string                               `json:"id,omitempty"`
	Label      string                               `json:"label,omitempty"`
	Conditions []*ServiceOrchestrationRuleCondition `json:"conditions,omitempty"`
	Actions    *ServiceOrchestrationRuleActions     `json:"actions,omitempty"`
	Disabled   bool                                 `json:"disabled,omitempty"`
}

type ServiceOrchestrationRuleActions

type ServiceOrchestrationRuleActions struct {
	RouteTo                    string                       `json:"route_to,omitempty"`
	Suppress                   bool                         `json:"suppress,omitempty"`
	Suspend                    uint                         `json:"suspend,omitempty"`
	Priority                   string                       `json:"priority,omitempty"`
	Annotate                   string                       `json:"annotate,omitempty"`
	PagerDutyAutomationActions []*PagerDutyAutomationAction `json:"pagerduty_automation_actions,omitempty"`
	AutomationActions          []*AutomationAction          `json:"automation_actions,omitempty"`
	Severity                   string                       `json:"severity,omitempty"`
	EventAction                string                       `json:"event_action,omitempty"`
	Variables                  []*OrchestrationVariable     `json:"variables,omitempty"`
	Extractions                []*OrchestrationExtraction   `json:"extractions,omitempty"`
}

ServiceOrchestrationRuleActions are the actions that will be taken to change the resulting alert and incident.

type ServiceOrchestrationRuleCondition

type ServiceOrchestrationRuleCondition struct {
	Expression string `json:"expression,omitempty"`
}

type ServiceOrchestrationRuleSet

type ServiceOrchestrationRuleSet struct {
	ID    string                      `json:"id,omitempty"`
	Rules []*ServiceOrchestrationRule `json:"rules,omitempty"`
}

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"`
	Parent      *APIObject `json:"parent,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
	Name              string             `json:"name"`
	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,omitempty"`
	NotificationRules []NotificationRule `json:"notification_rules,omitempty"`
	JobTitle          string             `json:"job_title,omitempty"`
	Teams             []Team             `json:"teams,omitempty"`
}

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
Package webhookv3 provides functionality for working with V3 PagerDuty Webhooks, including signature verification and decoding.
Package webhookv3 provides functionality for working with V3 PagerDuty Webhooks, including signature verification and decoding.

Jump to

Keyboard shortcuts

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