# README

## Incident Response SDK for TypeScript

Developer-friendly & type-safe TypeScript SDK specifically catered to leverage *Incident Response* API.

[![](https://www.speakeasy.com/assets/badges/built-by-speakeasy.svg)](https://www.speakeasy.com/?utm_source=squadcast-sdk\&utm_campaign=typescript) [![](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

### Summary

The Squadcast API provides developers the capability to extend and utilize Squadcast in conjunction with other services. Our API has resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

> **Note:** Customers using the V2 version of the Squadcast API would need to migrate to Squadcast API V3, as the former would be deprecated shortly.

#### Service Regions

Squadcast allows customers to choose the geographic region of the Squadcast data centers that host their account. When signing up, you can choose the service region. Currently, the available options are the United States (US) and Europe (EU).

| Service Region | API Endpoints                                                                                |
| -------------- | -------------------------------------------------------------------------------------------- |
| US             | Authentication: <https://auth.squadcast.com> · Other APIs: <https://api.squadcast.com>       |
| EU             | Authentication: <https://auth.eu.squadcast.com> · Other APIs: <https://api.eu.squadcast.com> |

#### Authentication

In order to access the API programmatically, HTTP bearer authentication needs to be used. HTTP bearer authentication must be constructed using an `access_token`, passed as the `Authorization` header for each request, for example `Authorization: Bearer eyJleHAiOjE2MzU1OTE1OTIsImp0aSI6Im`.

Steps to procure the `access_token`:

1. Generate a `refresh_token` (API Token) from the Squadcast web app. More details on how to get the `refresh_token` can be found in the Squadcast support documentation.
2. Call the authentication API with the `refresh_token` to obtain an `access_token`.
3. Use the `access_token` as a Bearer token in the `Authorization` header for all subsequent API requests.

**Example — Generating an Access Token**

```bash
curl --location --request GET 'https://auth.squadcast.com/oauth/access-token' \
--header 'X-Refresh-Token: 0d2a1a9a454dxxxxxxxxxxxx'
```

The API response will look similar to:

```json
{
  "data": {
    "access_token": "eyJhbGciOiJIUxxxxx.xxxxxxxxxxxxxxx.xxxxxxxxxxxxxxx",
    "expires_at": 1587412870,
    "issued_at": 1587240070,
    "refresh_token": "0d2a1a9a454dxxxxxxxxxxxx",
    "type": "bearer"
  }
}
```

#### Access Control

There are three different types of user roles in Squadcast: `account_owner`, `stakeholder`, and `user`. Refresh tokens upon creation are mapped with one of the mentioned user roles, and access to different resources is dependent on the permissions granted to these roles. For more information, please refer to the Squadcast support documentation.

#### Authorization

The access token authorizes users the ability to access different APIs, based on the user roles described above. Pass the access token as a Bearer token in the `Authorization` header of every request.

### Table of Contents

* [Incident Response SDK for TypeScript](#incident-response-sdk-for-typescript)
  * [SDK Installation](#sdk-installation)
  * [Requirements](#requirements)
  * [SDK Example Usage](#sdk-example-usage)
  * [Authentication](#authentication)
  * [Available Resources and Operations](#available-resources-and-operations)
  * [Standalone functions](#standalone-functions)
  * [Pagination](#pagination)
  * [File uploads](#file-uploads)
  * [Retries](#retries)
  * [Error Handling](#error-handling)
  * [Server Selection](#server-selection)
  * [Custom HTTP Client](#custom-http-client)
  * [Debugging](#debugging)
* [Development](#development)
  * [Maturity](#maturity)
  * [Contributions](#contributions)

### SDK Installation

The SDK can be installed with either [npm](https://www.npmjs.com/), [pnpm](https://pnpm.io/), [bun](https://bun.sh/) or [yarn](https://classic.yarnpkg.com/en/) package managers.

#### NPM

```bash
npm add @solarwinds/squadcast-sdk-typescript
```

#### PNPM

```bash
pnpm add @solarwinds/squadcast-sdk-typescript
```

#### Bun

```bash
bun add @solarwinds/squadcast-sdk-typescript
```

#### Yarn

```bash
yarn add @solarwinds/squadcast-sdk-typescript
```

> \[!NOTE] This package is published with CommonJS and ES Modules (ESM) support.

### Requirements

For supported JavaScript runtimes, please consult [RUNTIMES.md](/typescript/runtimes.md).

### SDK Example Usage

#### Example

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const squadcastSDK = new SquadcastSDK({
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.analytics.getOrganization({
    from: "<value>",
    to: "<value>",
  });

  console.log(result);
}

run();

```

### Authentication

#### Per-Client Security Schemes

This SDK supports the following security scheme globally:

| Name               | Type | Scheme      |
| ------------------ | ---- | ----------- |
| `refreshTokenAuth` | http | Custom HTTP |

To authenticate with the API the `refreshTokenAuth` parameter must be set when initializing the SDK client instance. For example:

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const squadcastSDK = new SquadcastSDK({
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.analytics.getOrganization({
    from: "<value>",
    to: "<value>",
  });

  console.log(result);
}

run();

```

### Available Resources and Operations

<details open>

<summary>Available methods</summary>

#### [Analytics](/typescript/docs/sdks/analytics.md)

* [getOrganization](/typescript/docs/sdks/analytics.md#getorganization) - Get Org level analytics
* [getTeam](/typescript/docs/sdks/analytics.md#getteam) - Get Team level analytics

#### [AuditLogs](/typescript/docs/sdks/auditlogs.md)

* [list](/typescript/docs/sdks/auditlogs.md#list) - List all Audit Logs
* [export](/typescript/docs/sdks/auditlogs.md#export) - Initiate an asynchronous export of audit logs based on the provided filters. The export file will be generated and available for download. Use 'Get details of Audit Logs export history by ID' API to retrieve the download URL.
* [listExportHistory](/typescript/docs/sdks/auditlogs.md#listexporthistory) - List all Audit Logs export history
* [getById](/typescript/docs/sdks/auditlogs.md#getbyid) - Get audit log by ID

[**AuditLogs.ExportHistory**](/typescript/docs/sdks/exporthistory.md)

* [get](/typescript/docs/sdks/exporthistory.md#get) - Get details of Audit Logs export history by ID

#### [CommunicationCards](/typescript/docs/sdks/communicationcards.md)

* [createSlackChannel](/typescript/docs/sdks/communicationcards.md#createslackchannel) - Create Slack Channel in Communication Card
* [delete](/typescript/docs/sdks/communicationcards.md#delete) - Delete Communication Card

#### [Components](/typescript/docs/sdks/components.md)

* [list](/typescript/docs/sdks/components.md#list) - List Components
* [deleteById](/typescript/docs/sdks/components.md#deletebyid) - Delete Component By ID

#### [DedupKeyOverlays](/typescript/docs/sdks/dedupkeyoverlays.md)

* [renderTemplate](/typescript/docs/sdks/dedupkeyoverlays.md#rendertemplate) - Render Dedup Key template
* [getForAlertSource](/typescript/docs/sdks/dedupkeyoverlays.md#getforalertsource) - Get Dedup Key Overlay for Alert Source
* [update](/typescript/docs/sdks/dedupkeyoverlays.md#update) - Update Dedup Key Overlay

#### [DeduplicationRules](/typescript/docs/sdks/deduplicationrules.md)

* [getRules](/typescript/docs/sdks/deduplicationrules.md#getrules) - Get Deduplication Rules
* [createOrUpdate](/typescript/docs/sdks/deduplicationrules.md#createorupdate) - Create or Update Deduplication Rules

#### [EscalationPolicies](/typescript/docs/sdks/escalationpolicies.md)

* [listByTeam](/typescript/docs/sdks/escalationpolicies.md#listbyteam) - Get Escalation Policy By team
* [create](/typescript/docs/sdks/escalationpolicies.md#create) - Create Escalation Policies
* [remove](/typescript/docs/sdks/escalationpolicies.md#remove) - Remove Escalation Policy
* [getById](/typescript/docs/sdks/escalationpolicies.md#getbyid) - Get Escalation Policy By ID
* [update](/typescript/docs/sdks/escalationpolicies.md#update) - Update Escalation Policy

#### [Exports](/typescript/docs/sdks/exports.md)

* [getDetails](/typescript/docs/sdks/exports.md#getdetails) - Get Export Details

#### [ExportSchedule](/typescript/docs/sdks/exportschedule.md)

* [refreshIcalLink](/typescript/docs/sdks/exportschedule.md#refreshicallink) - Refresh Schedule ICal Link

#### [Extensions.Msteams](/typescript/docs/sdks/extensionsmsteams.md)

* [getConfig](/typescript/docs/sdks/extensionsmsteams.md#getconfig) - Get MSTeams Config

#### [Extensions.Webhooks](/typescript/docs/sdks/extensionswebhooks.md)

* [create](/typescript/docs/sdks/extensionswebhooks.md#create) - Create Webhook
* [update](/typescript/docs/sdks/extensionswebhooks.md#update) - Update Webhook

#### [GlobalEventRules](/typescript/docs/sdks/globaleventrules.md)

* [list](/typescript/docs/sdks/globaleventrules.md#list) - List Global Event Rules
* [create](/typescript/docs/sdks/globaleventrules.md#create) - Create Global Event Rule
* [deleteById](/typescript/docs/sdks/globaleventrules.md#deletebyid) - Delete Global Event Rule by ID
* [getById](/typescript/docs/sdks/globaleventrules.md#getbyid) - Get Global Event Rule by ID
* [updateById](/typescript/docs/sdks/globaleventrules.md#updatebyid) - Update Global Event Rule by ID

[**GlobalEventRules.Rulesets**](/typescript/docs/sdks/globaleventrulesrulesets.md)

* [create](/typescript/docs/sdks/globaleventrulesrulesets.md#create) - Create Ruleset
* [get](/typescript/docs/sdks/globaleventrulesrulesets.md#get) - Get Ruleset
* [update](/typescript/docs/sdks/globaleventrulesrulesets.md#update) - Update Ruleset
* [reorder](/typescript/docs/sdks/globaleventrulesrulesets.md#reorder) - Reorder Ruleset
* [listRules](/typescript/docs/sdks/globaleventrulesrulesets.md#listrules) - List Ruleset Rules
* [createRule](/typescript/docs/sdks/globaleventrulesrulesets.md#createrule) - Create Rule
* [updateRule](/typescript/docs/sdks/globaleventrulesrulesets.md#updaterule) - Update Rule by ID

[**GlobalEventRules.Rulesets.Rules**](/typescript/docs/sdks/rulesetsrules.md)

* [get](/typescript/docs/sdks/rulesetsrules.md#get) - Get Rule by ID
* [reorderByIndex](/typescript/docs/sdks/rulesetsrules.md#reorderbyindex) - Reorder Ruleset By Index

#### [GlobalOncallReminderRules](/typescript/docs/sdks/globaloncallreminderrules.md)

* [delete](/typescript/docs/sdks/globaloncallreminderrules.md#delete) - Delete Global Oncall Reminder Rules
* [get](/typescript/docs/sdks/globaloncallreminderrules.md#get) - Get Global Oncall Reminder Rules
* [create](/typescript/docs/sdks/globaloncallreminderrules.md#create) - Create Global Oncall Reminder Rules
* [update](/typescript/docs/sdks/globaloncallreminderrules.md#update) - Update Global Oncall Reminder Rules

#### [IncidentActions.Circleci](/typescript/docs/sdks/circleci.md)

* [rebuild](/typescript/docs/sdks/circleci.md#rebuild) - Rebuild a Project In CircleCI

#### [Incidents](/typescript/docs/sdks/incidents.md)

* [archiveSlackChannel](/typescript/docs/sdks/incidents.md#archiveslackchannel) - Archive Slack Channel
* [getAllCommunicationCards](/typescript/docs/sdks/incidents.md#getallcommunicationcards) - Get All Communication Card
* [updateCommunicationCard](/typescript/docs/sdks/incidents.md#updatecommunicationcard) - Update Communication Card
* [attachRunbooks](/typescript/docs/sdks/incidents.md#attachrunbooks) - Attach Runbooks
* [createJiraServerTicket](/typescript/docs/sdks/incidents.md#createjiraserverticket) - Create a Ticket on Jira Server
* [createInServiceNow](/typescript/docs/sdks/incidents.md#createinservicenow) - Create an Incident in ServiceNow
* [triggerWebhook](/typescript/docs/sdks/incidents.md#triggerwebhook) - Trigger a Webhook Manually
* [getAdditionalResponders](/typescript/docs/sdks/incidents.md#getadditionalresponders) - Get Additional Responders
* [removeAdditionalResponder](/typescript/docs/sdks/incidents.md#removeadditionalresponder) - Remove Additional Responders
* [markAsTransient](/typescript/docs/sdks/incidents.md#markastransient) - Mark as Transient
* [updatePostmortem](/typescript/docs/sdks/incidents.md#updatepostmortem) - Update Postmortem By Incident
* [unsnoozeNotifications](/typescript/docs/sdks/incidents.md#unsnoozenotifications) - Unsnooze Incident Notifications
* [export](/typescript/docs/sdks/incidents.md#export) - Incident Export
* [exportAsync](/typescript/docs/sdks/incidents.md#exportasync) - Incident Export Async
* [bulkUpdatePriority](/typescript/docs/sdks/incidents.md#bulkupdatepriority) - Bulk Incidents Priority Update
* [bulkResolve](/typescript/docs/sdks/incidents.md#bulkresolve) - Bulk Resolve Incidents
* [getById](/typescript/docs/sdks/incidents.md#getbyid) - Get Incident by ID
* [acknowledge](/typescript/docs/sdks/incidents.md#acknowledge) - Acknowledge Incident
* [markSloFalsePositive](/typescript/docs/sdks/incidents.md#markslofalsepositive) - Mark Incident SLO False Positive
* [updatePriority](/typescript/docs/sdks/incidents.md#updatepriority) - Incident Priority Update
* [reassign](/typescript/docs/sdks/incidents.md#reassign) - Reassign Incident
* [resolve](/typescript/docs/sdks/incidents.md#resolve) - Resolve Incident
* [getStatusByRequestIds](/typescript/docs/sdks/incidents.md#getstatusbyrequestids) - Get Incidents Status By RequestIDs

[**Incidents.Actions.JiraCloud**](/typescript/docs/sdks/jiracloud.md)

* [createTicket](/typescript/docs/sdks/jiracloud.md#createticket) - Create a Ticket on Jira Cloud

[**Incidents.AdditionalResponders**](/typescript/docs/sdks/additionalresponders.md)

* [add](/typescript/docs/sdks/additionalresponders.md#add) - Add Additional Responders

[**Incidents.AutoPauseTransientAlerts**](/typescript/docs/sdks/autopausetransientalerts.md)

* [markAsNotTransient](/typescript/docs/sdks/autopausetransientalerts.md#markasnottransient) - Mark as Not Transient

[**Incidents.CommunicationCards**](/typescript/docs/sdks/incidentscommunicationcards.md)

* [create](/typescript/docs/sdks/incidentscommunicationcards.md#create) - Create Communication Card

[**Incidents.Events**](/typescript/docs/sdks/events.md)

* [list](/typescript/docs/sdks/events.md#list) - Get Incident Events

[**Incidents.Notes**](/typescript/docs/sdks/incidentsnotes.md)

* [create](/typescript/docs/sdks/incidentsnotes.md#create) - Create Notes
* [list](/typescript/docs/sdks/incidentsnotes.md#list) - Get All Notes
* [update](/typescript/docs/sdks/incidentsnotes.md#update) - Update Note

[**Incidents.Postmortems**](/typescript/docs/sdks/incidentspostmortems.md)

* [getAll](/typescript/docs/sdks/incidentspostmortems.md#getall) - Get All Postmortems
* [getByIncident](/typescript/docs/sdks/incidentspostmortems.md#getbyincident) - Get Postmortem By Incident
* [create](/typescript/docs/sdks/incidentspostmortems.md#create) - Create Postmortem

[**Incidents.Snooze**](/typescript/docs/sdks/snooze.md)

* [set](/typescript/docs/sdks/snooze.md#set) - Snooze Incident Notifications

[**Incidents.Tags**](/typescript/docs/sdks/tags.md)

* [update](/typescript/docs/sdks/tags.md#update) - Update Tag
* [append](/typescript/docs/sdks/tags.md#append) - Append Tag

#### [IncidentsV3](/typescript/docs/sdks/incidentsv3.md)

* [bulkAcknowledge](/typescript/docs/sdks/incidentsv3.md#bulkacknowledge) - Bulk Acknowledge Incidents

#### [Issues](/typescript/docs/sdks/issues.md)

* [create](/typescript/docs/sdks/issues.md#create) - Create Issue
* [delete](/typescript/docs/sdks/issues.md#delete) - Delete Issue By ID

#### [IssueStates](/typescript/docs/sdks/issuestates.md)

* [list](/typescript/docs/sdks/issuestates.md#list) - List Status Page Issue States

#### [Maintenances](/typescript/docs/sdks/maintenances.md)

* [create](/typescript/docs/sdks/maintenances.md#create) - Create Maintenance
* [deleteById](/typescript/docs/sdks/maintenances.md#deletebyid) - Delete Maintenance By ID

#### [Msteams](/typescript/docs/sdks/msteams.md)

* [createOrUpdateConfiguration](/typescript/docs/sdks/msteams.md#createorupdateconfiguration) - Create Or Update MSTeams Configuration

#### [Notes](/typescript/docs/sdks/notes.md)

* [delete](/typescript/docs/sdks/notes.md#delete) - Delete Note

#### [Overlays](/typescript/docs/sdks/overlays.md)

* [getAllDedupKeysByService](/typescript/docs/sdks/overlays.md#getalldedupkeysbyservice) - Get All Dedup Key Overlay by Service

#### [Overrides](/typescript/docs/sdks/overrides.md)

* [list](/typescript/docs/sdks/overrides.md#list) - List Overrides

#### [Postmortems](/typescript/docs/sdks/postmortems.md)

* [deleteByIncident](/typescript/docs/sdks/postmortems.md#deletebyincident) - Delete Postmortem By Incident

#### [Rotations](/typescript/docs/sdks/rotations.md)

* [getScheduleRotations](/typescript/docs/sdks/rotations.md#getschedulerotations) - List Schedule Rotations
* [delete](/typescript/docs/sdks/rotations.md#delete) - Delete Rotation
* [getById](/typescript/docs/sdks/rotations.md#getbyid) - Get Schedule Rotation by ID
* [getParticipants](/typescript/docs/sdks/rotations.md#getparticipants) - Get Rotation Participants
* [updateParticipants](/typescript/docs/sdks/rotations.md#updateparticipants) - Update Rotation Participants

#### [RoutingRules](/typescript/docs/sdks/routingrules.md)

* [get](/typescript/docs/sdks/routingrules.md#get) - Get Routing Rules
* [createOrUpdate](/typescript/docs/sdks/routingrules.md#createorupdate) - Create or Update Routing Rules

#### [Rules](/typescript/docs/sdks/rules.md)

* [deleteById](/typescript/docs/sdks/rules.md#deletebyid) - Delete Rule by ID

#### [Rulesets](/typescript/docs/sdks/rulesets.md)

* [deleteById](/typescript/docs/sdks/rulesets.md#deletebyid) - Delete GER Ruleset

#### [Runbooks](/typescript/docs/sdks/runbooks.md)

* [listByTeam](/typescript/docs/sdks/runbooks.md#listbyteam) - Get All Runbooks By Team
* [create](/typescript/docs/sdks/runbooks.md#create) - Create Runbook
* [remove](/typescript/docs/sdks/runbooks.md#remove) - Remove Runbook
* [getById](/typescript/docs/sdks/runbooks.md#getbyid) - Get Runbook By ID
* [update](/typescript/docs/sdks/runbooks.md#update) - Update Runbook

#### [Schedule.Export](/typescript/docs/sdks/scheduleexport.md)

* [deleteICalLink](/typescript/docs/sdks/scheduleexport.md#deleteicallink) - Delete ICal Link

#### [Schedules](/typescript/docs/sdks/schedules.md)

* [list](/typescript/docs/sdks/schedules.md#list) - List Schedules
* [create](/typescript/docs/sdks/schedules.md#create) - Create Schedule
* [delete](/typescript/docs/sdks/schedules.md#delete) - Delete Schedule
* [getById](/typescript/docs/sdks/schedules.md#getbyid) - Get Schedule by ID
* [update](/typescript/docs/sdks/schedules.md#update) - Update Schedule
* [changeTimezone](/typescript/docs/sdks/schedules.md#changetimezone) - Change Timezone
* [clone](/typescript/docs/sdks/schedules.md#clone) - Clone Schedule
* [createIcalLink](/typescript/docs/sdks/schedules.md#createicallink) - Create Schedule ICal Link
* [deleteOverride](/typescript/docs/sdks/schedules.md#deleteoverride) - Delete Schedule Override
* [getOverrideById](/typescript/docs/sdks/schedules.md#getoverridebyid) - Get Override by ID
* [createRotation](/typescript/docs/sdks/schedules.md#createrotation) - Create Rotation

[**Schedules.Actions**](/typescript/docs/sdks/schedulesactions.md)

* [pauseResume](/typescript/docs/sdks/schedulesactions.md#pauseresume) - Pause/Resume Schedule

[**Schedules.Export**](/typescript/docs/sdks/schedulesexport.md)

* [getIcalLink](/typescript/docs/sdks/schedulesexport.md#geticallink) - Get Schedule ICal Link

[**Schedules.Overrides**](/typescript/docs/sdks/schedulesoverrides.md)

* [create](/typescript/docs/sdks/schedulesoverrides.md#create) - Create Schedule Override
* [update](/typescript/docs/sdks/schedulesoverrides.md#update) - Update Schedule Override

[**Schedules.Rotations**](/typescript/docs/sdks/schedulesrotations.md)

* [update](/typescript/docs/sdks/schedulesrotations.md#update) - Update Rotation

#### [Services](/typescript/docs/sdks/services.md)

* [list](/typescript/docs/sdks/services.md#list) - Get All Services
* [create](/typescript/docs/sdks/services.md#create) - Create Service
* [listByName](/typescript/docs/sdks/services.md#listbyname) - Get Services By Name
* [getById](/typescript/docs/sdks/services.md#getbyid) - Get Service By ID
* [update](/typescript/docs/sdks/services.md#update) - Update Service
* [delete](/typescript/docs/sdks/services.md#delete) - Delete Service
* [createOrUpdateIAGConfig](/typescript/docs/sdks/services.md#createorupdateiagconfig) - Intelligent Alert Grouping (IAG)
* [updateNotificationDelayConfig](/typescript/docs/sdks/services.md#updatenotificationdelayconfig) - Delayed Notification Config
* [updateSlackExtension](/typescript/docs/sdks/services.md#updateslackextension) - Update Slack Extension
* [getCustomContentTemplates](/typescript/docs/sdks/services.md#getcustomcontenttemplates) - Get All Custom Content Template Overlay by Service

#### [Services.AptaConfig](/typescript/docs/sdks/aptaconfig.md)

* [createOrUpdate](/typescript/docs/sdks/aptaconfig.md#createorupdate) - Auto Pause Transient Alerts (APTA)

#### [Services.Dependencies](/typescript/docs/sdks/dependencies.md)

* [createOrUpdate](/typescript/docs/sdks/dependencies.md#createorupdate) - Create or Update Dependencies

#### [Services.Maintenance](/typescript/docs/sdks/maintenance.md)

* [get](/typescript/docs/sdks/maintenance.md#get) - Get Maintenance Mode
* [createOrUpdate](/typescript/docs/sdks/maintenance.md#createorupdate) - Create or Update Maintenance Mode

#### [Services.Overlay](/typescript/docs/sdks/overlay.md)

* [getOptinForKeyBasedDeduplication](/typescript/docs/sdks/overlay.md#getoptinforkeybaseddeduplication) - Get Opt-in for Key Based Deduplication for a service

#### [Services.Overlays](/typescript/docs/sdks/servicesoverlays.md)

* [optinKeyBasedDeduplication](/typescript/docs/sdks/servicesoverlays.md#optinkeybaseddeduplication) - Opt-in for Key Based Deduplication for a service
* [renderCustomContent](/typescript/docs/sdks/servicesoverlays.md#rendercustomcontent) - Render Custom Content Overlay
* [deleteCustomContent](/typescript/docs/sdks/servicesoverlays.md#deletecustomcontent) - Delete Notification Template Overlay
* [getCustomContentTemplate](/typescript/docs/sdks/servicesoverlays.md#getcustomcontenttemplate) - Get Custom Content Template Overlay

[**Services.Overlays.CustomContent**](/typescript/docs/sdks/customcontent.md)

* [createOrUpdate](/typescript/docs/sdks/customcontent.md#createorupdate) - Create or Update Notification Template Overlay

[**Services.Overlays.DedupKey**](/typescript/docs/sdks/dedupkey.md)

* [delete](/typescript/docs/sdks/dedupkey.md#delete) - Delete Dedup Key Overlay

#### [Services.SuppressionRules](/typescript/docs/sdks/suppressionrules.md)

* [list](/typescript/docs/sdks/suppressionrules.md#list) - Get Suppression Rules
* [createOrUpdate](/typescript/docs/sdks/suppressionrules.md#createorupdate) - Create or Update Suppression Rules

#### [Services.TaggingRules](/typescript/docs/sdks/taggingrules.md)

* [list](/typescript/docs/sdks/taggingrules.md#list) - Get Tagging Rules
* [createOrUpdate](/typescript/docs/sdks/taggingrules.md#createorupdate) - Create or Update Tagging Rules

#### [Slo](/typescript/docs/sdks/slo.md)

* [markAffected](/typescript/docs/sdks/slo.md#markaffected) - Mark SLO Affected

#### [Slos](/typescript/docs/sdks/slos.md)

* [list](/typescript/docs/sdks/slos.md#list) - Get All SLOs
* [create](/typescript/docs/sdks/slos.md#create) - Create SLO
* [update](/typescript/docs/sdks/slos.md#update) - Update SLO
* [remove](/typescript/docs/sdks/slos.md#remove) - Remove SLO
* [getById](/typescript/docs/sdks/slos.md#getbyid) - Get SLO By ID
* [markFalsePositive](/typescript/docs/sdks/slos.md#markfalsepositive) - Mark SLO False Positive

#### [Squads](/typescript/docs/sdks/squads.md)

* [list](/typescript/docs/sdks/squads.md#list) - Get All Squads
* [createV4](/typescript/docs/sdks/squads.md#createv4) - Create Squad
* [updateMember](/typescript/docs/sdks/squads.md#updatemember) - Update Squad Member
* [updateName](/typescript/docs/sdks/squads.md#updatename) - Update Squad Name
* [delete](/typescript/docs/sdks/squads.md#delete) - Delete Squad

[**Squads.Members**](/typescript/docs/sdks/squadsmembers.md)

* [remove](/typescript/docs/sdks/squadsmembers.md#remove) - Remove Squad Member

#### [SquadsV4](/typescript/docs/sdks/squadsv4.md)

* [getById](/typescript/docs/sdks/squadsv4.md#getbyid) - Get Squad By ID
* [update](/typescript/docs/sdks/squadsv4.md#update) - Update Squad

#### [StatusPages](/typescript/docs/sdks/statuspages.md)

* [list](/typescript/docs/sdks/statuspages.md#list) - List Status Pages
* [create](/typescript/docs/sdks/statuspages.md#create) - Create Status Page
* [delete](/typescript/docs/sdks/statuspages.md#delete) - Delete Status Page By ID
* [getById](/typescript/docs/sdks/statuspages.md#getbyid) - Get Status Page By ID
* [updateById](/typescript/docs/sdks/statuspages.md#updatebyid) - Update Status Page By ID
* [getIssueById](/typescript/docs/sdks/statuspages.md#getissuebyid) - Get Issue By ID
* [listStatuses](/typescript/docs/sdks/statuspages.md#liststatuses) - List Status Page Statuses

[**StatusPages.ComponentGroups**](/typescript/docs/sdks/componentgroups.md)

* [list](/typescript/docs/sdks/componentgroups.md#list) - List Component Groups
* [create](/typescript/docs/sdks/componentgroups.md#create) - Create Component Group
* [deleteById](/typescript/docs/sdks/componentgroups.md#deletebyid) - Delete Component Group By ID
* [getById](/typescript/docs/sdks/componentgroups.md#getbyid) - Get Component Group By ID

[**StatusPages.Components**](/typescript/docs/sdks/statuspagescomponents.md)

* [create](/typescript/docs/sdks/statuspagescomponents.md#create) - Create Component
* [getById](/typescript/docs/sdks/statuspagescomponents.md#getbyid) - Get Component By ID
* [updateById](/typescript/docs/sdks/statuspagescomponents.md#updatebyid) - Update Component By ID

[**StatusPages.Issues**](/typescript/docs/sdks/statuspagesissues.md)

* [list](/typescript/docs/sdks/statuspagesissues.md#list) - List Issues
* [update](/typescript/docs/sdks/statuspagesissues.md#update) - Update Issue

[**StatusPages.Maintenances**](/typescript/docs/sdks/statuspagesmaintenances.md)

* [list](/typescript/docs/sdks/statuspagesmaintenances.md#list) - List Maintenances
* [getById](/typescript/docs/sdks/statuspagesmaintenances.md#getbyid) - Get Maintenance By ID
* [updateById](/typescript/docs/sdks/statuspagesmaintenances.md#updatebyid) - Update Maintenance By ID

#### [StatusPageSubscribers](/typescript/docs/sdks/statuspagesubscribers.md)

* [list](/typescript/docs/sdks/statuspagesubscribers.md#list) - List Subscribers

#### [Teams](/typescript/docs/sdks/teams.md)

* [list](/typescript/docs/sdks/teams.md#list) - Get All Teams
* [create](/typescript/docs/sdks/teams.md#create) - Create Team
* [getById](/typescript/docs/sdks/teams.md#getbyid) - Get Team By ID
* [update](/typescript/docs/sdks/teams.md#update) - Update Team
* [remove](/typescript/docs/sdks/teams.md#remove) - Remove Team
* [listMembers](/typescript/docs/sdks/teams.md#listmembers) - Get All Team Members
* [getRoles](/typescript/docs/sdks/teams.md#getroles) - Get All Team Roles

#### [Teams.Members](/typescript/docs/sdks/teamsmembers.md)

* [add](/typescript/docs/sdks/teamsmembers.md#add) - Add Team Member
* [bulkAdd](/typescript/docs/sdks/teamsmembers.md#bulkadd) - Add Bulk Team Member
* [remove](/typescript/docs/sdks/teamsmembers.md#remove) - Remove Team Member
* [update](/typescript/docs/sdks/teamsmembers.md#update) - Update Team Member

#### [Teams.Roles](/typescript/docs/sdks/roles.md)

* [create](/typescript/docs/sdks/roles.md#create) - Create Team Role
* [remove](/typescript/docs/sdks/roles.md#remove) - Remove Team Role
* [update](/typescript/docs/sdks/roles.md#update) - Update Team Role

#### [Tokens](/typescript/docs/sdks/tokens.md)

* [create](/typescript/docs/sdks/tokens.md#create) - Create Token

#### [Users](/typescript/docs/sdks/users.md)

* [getAllTokens](/typescript/docs/sdks/users.md#getalltokens) - Get All Tokens
* [removeToken](/typescript/docs/sdks/users.md#removetoken) - Remove Token
* [list](/typescript/docs/sdks/users.md#list) - Get All Users
* [add](/typescript/docs/sdks/users.md#add) - Add User
* [updateOrgLevelPermissions](/typescript/docs/sdks/users.md#updateorglevelpermissions) - Update Org Level Permissions
* [delete](/typescript/docs/sdks/users.md#delete) - Delete User
* [getRoles](/typescript/docs/sdks/users.md#getroles) - Get User Roles
* [removeFromOrg](/typescript/docs/sdks/users.md#removefromorg) - Remove User From Org
* [getById](/typescript/docs/sdks/users.md#getbyid) - Get User By ID
* [updateById](/typescript/docs/sdks/users.md#updatebyid) - Update User by userID

#### [Webforms](/typescript/docs/sdks/webforms.md)

* [getAll](/typescript/docs/sdks/webforms.md#getall) - Get All Webforms
* [create](/typescript/docs/sdks/webforms.md#create) - Create Webform
* [update](/typescript/docs/sdks/webforms.md#update) - Update Webform
* [remove](/typescript/docs/sdks/webforms.md#remove) - Remove Webform
* [getById](/typescript/docs/sdks/webforms.md#getbyid) - Get Webform By ID

#### [Webhooks](/typescript/docs/sdks/webhooks.md)

* [getAll](/typescript/docs/sdks/webhooks.md#getall) - Get All Webhooks
* [delete](/typescript/docs/sdks/webhooks.md#delete) - Delete Webhook
* [getById](/typescript/docs/sdks/webhooks.md#getbyid) - Get Webhook By ID

#### [WorkflowActions](/typescript/docs/sdks/workflowactions.md)

* [getById](/typescript/docs/sdks/workflowactions.md#getbyid) - Get Workflow Action By ID

#### [WorkflowLogs](/typescript/docs/sdks/workflowlogs.md)

* [get](/typescript/docs/sdks/workflowlogs.md#get) - Get Workflow Logs

#### [Workflows](/typescript/docs/sdks/workflows.md)

* [list](/typescript/docs/sdks/workflows.md#list) - List Workflows
* [create](/typescript/docs/sdks/workflows.md#create) - Create Workflow
* [bulkEnableDisable](/typescript/docs/sdks/workflows.md#bulkenabledisable) - Bulk Enable/Disable Workflows
* [delete](/typescript/docs/sdks/workflows.md#delete) - Delete Workflow
* [getById](/typescript/docs/sdks/workflows.md#getbyid) - Get Workflow By ID
* [update](/typescript/docs/sdks/workflows.md#update) - Update Workflow
* [updateActionsOrder](/typescript/docs/sdks/workflows.md#updateactionsorder) - Update Actions Order
* [deleteAction](/typescript/docs/sdks/workflows.md#deleteaction) - Delete Workflow Action
* [updateAction](/typescript/docs/sdks/workflows.md#updateaction) - Update Workflow Action
* [enableDisable](/typescript/docs/sdks/workflows.md#enabledisable) - Enable/Disable Workflow

#### [Workflows.Actions](/typescript/docs/sdks/workflowsactions.md)

* [create](/typescript/docs/sdks/workflowsactions.md#create) - Create Action

</details>

### Standalone functions

All the methods listed above are available as standalone functions. These functions are ideal for use in applications running in the browser, serverless runtimes or other environments where application bundle size is a primary concern. When using a bundler to build your application, all unused functionality will be either excluded from the final bundle or tree-shaken away.

To read more about standalone functions, check [FUNCTIONS.md](/typescript/functions.md).

<details>

<summary>Available standalone functions</summary>

* [`analyticsGetOrganization`](/typescript/docs/sdks/analytics.md#getorganization) - Get Org level analytics
* [`analyticsGetTeam`](/typescript/docs/sdks/analytics.md#getteam) - Get Team level analytics
* [`auditLogsExport`](/typescript/docs/sdks/auditlogs.md#export) - Initiate an asynchronous export of audit logs based on the provided filters. The export file will be generated and available for download. Use 'Get details of Audit Logs export history by ID' API to retrieve the download URL.
* [`auditLogsExportHistoryGet`](/typescript/docs/sdks/exporthistory.md#get) - Get details of Audit Logs export history by ID
* [`auditLogsGetById`](/typescript/docs/sdks/auditlogs.md#getbyid) - Get audit log by ID
* [`auditLogsList`](/typescript/docs/sdks/auditlogs.md#list) - List all Audit Logs
* [`auditLogsListExportHistory`](/typescript/docs/sdks/auditlogs.md#listexporthistory) - List all Audit Logs export history
* [`communicationCardsCreateSlackChannel`](/typescript/docs/sdks/communicationcards.md#createslackchannel) - Create Slack Channel in Communication Card
* [`communicationCardsDelete`](/typescript/docs/sdks/communicationcards.md#delete) - Delete Communication Card
* [`componentsDeleteById`](/typescript/docs/sdks/components.md#deletebyid) - Delete Component By ID
* [`componentsList`](/typescript/docs/sdks/components.md#list) - List Components
* [`dedupKeyOverlaysGetForAlertSource`](/typescript/docs/sdks/dedupkeyoverlays.md#getforalertsource) - Get Dedup Key Overlay for Alert Source
* [`dedupKeyOverlaysRenderTemplate`](/typescript/docs/sdks/dedupkeyoverlays.md#rendertemplate) - Render Dedup Key template
* [`dedupKeyOverlaysUpdate`](/typescript/docs/sdks/dedupkeyoverlays.md#update) - Update Dedup Key Overlay
* [`deduplicationRulesCreateOrUpdate`](/typescript/docs/sdks/deduplicationrules.md#createorupdate) - Create or Update Deduplication Rules
* [`deduplicationRulesGetRules`](/typescript/docs/sdks/deduplicationrules.md#getrules) - Get Deduplication Rules
* [`escalationPoliciesCreate`](/typescript/docs/sdks/escalationpolicies.md#create) - Create Escalation Policies
* [`escalationPoliciesGetById`](/typescript/docs/sdks/escalationpolicies.md#getbyid) - Get Escalation Policy By ID
* [`escalationPoliciesListByTeam`](/typescript/docs/sdks/escalationpolicies.md#listbyteam) - Get Escalation Policy By team
* [`escalationPoliciesRemove`](/typescript/docs/sdks/escalationpolicies.md#remove) - Remove Escalation Policy
* [`escalationPoliciesUpdate`](/typescript/docs/sdks/escalationpolicies.md#update) - Update Escalation Policy
* [`exportScheduleRefreshIcalLink`](/typescript/docs/sdks/exportschedule.md#refreshicallink) - Refresh Schedule ICal Link
* [`exportsGetDetails`](/typescript/docs/sdks/exports.md#getdetails) - Get Export Details
* [`extensionsMsteamsGetConfig`](/typescript/docs/sdks/extensionsmsteams.md#getconfig) - Get MSTeams Config
* [`extensionsWebhooksCreate`](/typescript/docs/sdks/extensionswebhooks.md#create) - Create Webhook
* [`extensionsWebhooksUpdate`](/typescript/docs/sdks/extensionswebhooks.md#update) - Update Webhook
* [`globalEventRulesCreate`](/typescript/docs/sdks/globaleventrules.md#create) - Create Global Event Rule
* [`globalEventRulesDeleteById`](/typescript/docs/sdks/globaleventrules.md#deletebyid) - Delete Global Event Rule by ID
* [`globalEventRulesGetById`](/typescript/docs/sdks/globaleventrules.md#getbyid) - Get Global Event Rule by ID
* [`globalEventRulesList`](/typescript/docs/sdks/globaleventrules.md#list) - List Global Event Rules
* [`globalEventRulesRulesetsCreate`](/typescript/docs/sdks/globaleventrulesrulesets.md#create) - Create Ruleset
* [`globalEventRulesRulesetsCreateRule`](/typescript/docs/sdks/globaleventrulesrulesets.md#createrule) - Create Rule
* [`globalEventRulesRulesetsGet`](/typescript/docs/sdks/globaleventrulesrulesets.md#get) - Get Ruleset
* [`globalEventRulesRulesetsListRules`](/typescript/docs/sdks/globaleventrulesrulesets.md#listrules) - List Ruleset Rules
* [`globalEventRulesRulesetsReorder`](/typescript/docs/sdks/globaleventrulesrulesets.md#reorder) - Reorder Ruleset
* [`globalEventRulesRulesetsRulesGet`](/typescript/docs/sdks/rulesetsrules.md#get) - Get Rule by ID
* [`globalEventRulesRulesetsRulesReorderByIndex`](/typescript/docs/sdks/rulesetsrules.md#reorderbyindex) - Reorder Ruleset By Index
* [`globalEventRulesRulesetsUpdate`](/typescript/docs/sdks/globaleventrulesrulesets.md#update) - Update Ruleset
* [`globalEventRulesRulesetsUpdateRule`](/typescript/docs/sdks/globaleventrulesrulesets.md#updaterule) - Update Rule by ID
* [`globalEventRulesUpdateById`](/typescript/docs/sdks/globaleventrules.md#updatebyid) - Update Global Event Rule by ID
* [`globalOncallReminderRulesCreate`](/typescript/docs/sdks/globaloncallreminderrules.md#create) - Create Global Oncall Reminder Rules
* [`globalOncallReminderRulesDelete`](/typescript/docs/sdks/globaloncallreminderrules.md#delete) - Delete Global Oncall Reminder Rules
* [`globalOncallReminderRulesGet`](/typescript/docs/sdks/globaloncallreminderrules.md#get) - Get Global Oncall Reminder Rules
* [`globalOncallReminderRulesUpdate`](/typescript/docs/sdks/globaloncallreminderrules.md#update) - Update Global Oncall Reminder Rules
* [`incidentActionsCircleciRebuild`](/typescript/docs/sdks/circleci.md#rebuild) - Rebuild a Project In CircleCI
* [`incidentsAcknowledge`](/typescript/docs/sdks/incidents.md#acknowledge) - Acknowledge Incident
* [`incidentsActionsJiraCloudCreateTicket`](/typescript/docs/sdks/jiracloud.md#createticket) - Create a Ticket on Jira Cloud
* [`incidentsAdditionalRespondersAdd`](/typescript/docs/sdks/additionalresponders.md#add) - Add Additional Responders
* [`incidentsArchiveSlackChannel`](/typescript/docs/sdks/incidents.md#archiveslackchannel) - Archive Slack Channel
* [`incidentsAttachRunbooks`](/typescript/docs/sdks/incidents.md#attachrunbooks) - Attach Runbooks
* [`incidentsAutoPauseTransientAlertsMarkAsNotTransient`](/typescript/docs/sdks/autopausetransientalerts.md#markasnottransient) - Mark as Not Transient
* [`incidentsBulkResolve`](/typescript/docs/sdks/incidents.md#bulkresolve) - Bulk Resolve Incidents
* [`incidentsBulkUpdatePriority`](/typescript/docs/sdks/incidents.md#bulkupdatepriority) - Bulk Incidents Priority Update
* [`incidentsCommunicationCardsCreate`](/typescript/docs/sdks/incidentscommunicationcards.md#create) - Create Communication Card
* [`incidentsCreateInServiceNow`](/typescript/docs/sdks/incidents.md#createinservicenow) - Create an Incident in ServiceNow
* [`incidentsCreateJiraServerTicket`](/typescript/docs/sdks/incidents.md#createjiraserverticket) - Create a Ticket on Jira Server
* [`incidentsEventsList`](/typescript/docs/sdks/events.md#list) - Get Incident Events
* [`incidentsExport`](/typescript/docs/sdks/incidents.md#export) - Incident Export
* [`incidentsExportAsync`](/typescript/docs/sdks/incidents.md#exportasync) - Incident Export Async
* [`incidentsGetAdditionalResponders`](/typescript/docs/sdks/incidents.md#getadditionalresponders) - Get Additional Responders
* [`incidentsGetAllCommunicationCards`](/typescript/docs/sdks/incidents.md#getallcommunicationcards) - Get All Communication Card
* [`incidentsGetById`](/typescript/docs/sdks/incidents.md#getbyid) - Get Incident by ID
* [`incidentsGetStatusByRequestIds`](/typescript/docs/sdks/incidents.md#getstatusbyrequestids) - Get Incidents Status By RequestIDs
* [`incidentsMarkAsTransient`](/typescript/docs/sdks/incidents.md#markastransient) - Mark as Transient
* [`incidentsMarkSloFalsePositive`](/typescript/docs/sdks/incidents.md#markslofalsepositive) - Mark Incident SLO False Positive
* [`incidentsNotesCreate`](/typescript/docs/sdks/incidentsnotes.md#create) - Create Notes
* [`incidentsNotesList`](/typescript/docs/sdks/incidentsnotes.md#list) - Get All Notes
* [`incidentsNotesUpdate`](/typescript/docs/sdks/incidentsnotes.md#update) - Update Note
* [`incidentsPostmortemsCreate`](/typescript/docs/sdks/incidentspostmortems.md#create) - Create Postmortem
* [`incidentsPostmortemsGetAll`](/typescript/docs/sdks/incidentspostmortems.md#getall) - Get All Postmortems
* [`incidentsPostmortemsGetByIncident`](/typescript/docs/sdks/incidentspostmortems.md#getbyincident) - Get Postmortem By Incident
* [`incidentsReassign`](/typescript/docs/sdks/incidents.md#reassign) - Reassign Incident
* [`incidentsRemoveAdditionalResponder`](/typescript/docs/sdks/incidents.md#removeadditionalresponder) - Remove Additional Responders
* [`incidentsResolve`](/typescript/docs/sdks/incidents.md#resolve) - Resolve Incident
* [`incidentsSnoozeSet`](/typescript/docs/sdks/snooze.md#set) - Snooze Incident Notifications
* [`incidentsTagsAppend`](/typescript/docs/sdks/tags.md#append) - Append Tag
* [`incidentsTagsUpdate`](/typescript/docs/sdks/tags.md#update) - Update Tag
* [`incidentsTriggerWebhook`](/typescript/docs/sdks/incidents.md#triggerwebhook) - Trigger a Webhook Manually
* [`incidentsUnsnoozeNotifications`](/typescript/docs/sdks/incidents.md#unsnoozenotifications) - Unsnooze Incident Notifications
* [`incidentsUpdateCommunicationCard`](/typescript/docs/sdks/incidents.md#updatecommunicationcard) - Update Communication Card
* [`incidentsUpdatePostmortem`](/typescript/docs/sdks/incidents.md#updatepostmortem) - Update Postmortem By Incident
* [`incidentsUpdatePriority`](/typescript/docs/sdks/incidents.md#updatepriority) - Incident Priority Update
* [`incidentsV3BulkAcknowledge`](/typescript/docs/sdks/incidentsv3.md#bulkacknowledge) - Bulk Acknowledge Incidents
* [`issuesCreate`](/typescript/docs/sdks/issues.md#create) - Create Issue
* [`issuesDelete`](/typescript/docs/sdks/issues.md#delete) - Delete Issue By ID
* [`issueStatesList`](/typescript/docs/sdks/issuestates.md#list) - List Status Page Issue States
* [`maintenancesCreate`](/typescript/docs/sdks/maintenances.md#create) - Create Maintenance
* [`maintenancesDeleteById`](/typescript/docs/sdks/maintenances.md#deletebyid) - Delete Maintenance By ID
* [`msteamsCreateOrUpdateConfiguration`](/typescript/docs/sdks/msteams.md#createorupdateconfiguration) - Create Or Update MSTeams Configuration
* [`notesDelete`](/typescript/docs/sdks/notes.md#delete) - Delete Note
* [`overlaysGetAllDedupKeysByService`](/typescript/docs/sdks/overlays.md#getalldedupkeysbyservice) - Get All Dedup Key Overlay by Service
* [`overridesList`](/typescript/docs/sdks/overrides.md#list) - List Overrides
* [`postmortemsDeleteByIncident`](/typescript/docs/sdks/postmortems.md#deletebyincident) - Delete Postmortem By Incident
* [`rotationsDelete`](/typescript/docs/sdks/rotations.md#delete) - Delete Rotation
* [`rotationsGetById`](/typescript/docs/sdks/rotations.md#getbyid) - Get Schedule Rotation by ID
* [`rotationsGetParticipants`](/typescript/docs/sdks/rotations.md#getparticipants) - Get Rotation Participants
* [`rotationsGetScheduleRotations`](/typescript/docs/sdks/rotations.md#getschedulerotations) - List Schedule Rotations
* [`rotationsUpdateParticipants`](/typescript/docs/sdks/rotations.md#updateparticipants) - Update Rotation Participants
* [`routingRulesCreateOrUpdate`](/typescript/docs/sdks/routingrules.md#createorupdate) - Create or Update Routing Rules
* [`routingRulesGet`](/typescript/docs/sdks/routingrules.md#get) - Get Routing Rules
* [`rulesDeleteById`](/typescript/docs/sdks/rules.md#deletebyid) - Delete Rule by ID
* [`rulesetsDeleteById`](/typescript/docs/sdks/rulesets.md#deletebyid) - Delete GER Ruleset
* [`runbooksCreate`](/typescript/docs/sdks/runbooks.md#create) - Create Runbook
* [`runbooksGetById`](/typescript/docs/sdks/runbooks.md#getbyid) - Get Runbook By ID
* [`runbooksListByTeam`](/typescript/docs/sdks/runbooks.md#listbyteam) - Get All Runbooks By Team
* [`runbooksRemove`](/typescript/docs/sdks/runbooks.md#remove) - Remove Runbook
* [`runbooksUpdate`](/typescript/docs/sdks/runbooks.md#update) - Update Runbook
* [`scheduleExportDeleteICalLink`](/typescript/docs/sdks/scheduleexport.md#deleteicallink) - Delete ICal Link
* [`schedulesActionsPauseResume`](/typescript/docs/sdks/schedulesactions.md#pauseresume) - Pause/Resume Schedule
* [`schedulesChangeTimezone`](/typescript/docs/sdks/schedules.md#changetimezone) - Change Timezone
* [`schedulesClone`](/typescript/docs/sdks/schedules.md#clone) - Clone Schedule
* [`schedulesCreate`](/typescript/docs/sdks/schedules.md#create) - Create Schedule
* [`schedulesCreateIcalLink`](/typescript/docs/sdks/schedules.md#createicallink) - Create Schedule ICal Link
* [`schedulesCreateRotation`](/typescript/docs/sdks/schedules.md#createrotation) - Create Rotation
* [`schedulesDelete`](/typescript/docs/sdks/schedules.md#delete) - Delete Schedule
* [`schedulesDeleteOverride`](/typescript/docs/sdks/schedules.md#deleteoverride) - Delete Schedule Override
* [`schedulesExportGetIcalLink`](/typescript/docs/sdks/schedulesexport.md#geticallink) - Get Schedule ICal Link
* [`schedulesGetById`](/typescript/docs/sdks/schedules.md#getbyid) - Get Schedule by ID
* [`schedulesGetOverrideById`](/typescript/docs/sdks/schedules.md#getoverridebyid) - Get Override by ID
* [`schedulesList`](/typescript/docs/sdks/schedules.md#list) - List Schedules
* [`schedulesOverridesCreate`](/typescript/docs/sdks/schedulesoverrides.md#create) - Create Schedule Override
* [`schedulesOverridesUpdate`](/typescript/docs/sdks/schedulesoverrides.md#update) - Update Schedule Override
* [`schedulesRotationsUpdate`](/typescript/docs/sdks/schedulesrotations.md#update) - Update Rotation
* [`schedulesUpdate`](/typescript/docs/sdks/schedules.md#update) - Update Schedule
* [`servicesAptaConfigCreateOrUpdate`](/typescript/docs/sdks/aptaconfig.md#createorupdate) - Auto Pause Transient Alerts (APTA)
* [`servicesCreate`](/typescript/docs/sdks/services.md#create) - Create Service
* [`servicesCreateOrUpdateIAGConfig`](/typescript/docs/sdks/services.md#createorupdateiagconfig) - Intelligent Alert Grouping (IAG)
* [`servicesDelete`](/typescript/docs/sdks/services.md#delete) - Delete Service
* [`servicesDependenciesCreateOrUpdate`](/typescript/docs/sdks/dependencies.md#createorupdate) - Create or Update Dependencies
* [`servicesGetById`](/typescript/docs/sdks/services.md#getbyid) - Get Service By ID
* [`servicesGetCustomContentTemplates`](/typescript/docs/sdks/services.md#getcustomcontenttemplates) - Get All Custom Content Template Overlay by Service
* [`servicesList`](/typescript/docs/sdks/services.md#list) - Get All Services
* [`servicesListByName`](/typescript/docs/sdks/services.md#listbyname) - Get Services By Name
* [`servicesMaintenanceCreateOrUpdate`](/typescript/docs/sdks/maintenance.md#createorupdate) - Create or Update Maintenance Mode
* [`servicesMaintenanceGet`](/typescript/docs/sdks/maintenance.md#get) - Get Maintenance Mode
* [`servicesOverlayGetOptinForKeyBasedDeduplication`](/typescript/docs/sdks/overlay.md#getoptinforkeybaseddeduplication) - Get Opt-in for Key Based Deduplication for a service
* [`servicesOverlaysCustomContentCreateOrUpdate`](/typescript/docs/sdks/customcontent.md#createorupdate) - Create or Update Notification Template Overlay
* [`servicesOverlaysDedupKeyDelete`](/typescript/docs/sdks/dedupkey.md#delete) - Delete Dedup Key Overlay
* [`servicesOverlaysDeleteCustomContent`](/typescript/docs/sdks/servicesoverlays.md#deletecustomcontent) - Delete Notification Template Overlay
* [`servicesOverlaysGetCustomContentTemplate`](/typescript/docs/sdks/servicesoverlays.md#getcustomcontenttemplate) - Get Custom Content Template Overlay
* [`servicesOverlaysOptinKeyBasedDeduplication`](/typescript/docs/sdks/servicesoverlays.md#optinkeybaseddeduplication) - Opt-in for Key Based Deduplication for a service
* [`servicesOverlaysRenderCustomContent`](/typescript/docs/sdks/servicesoverlays.md#rendercustomcontent) - Render Custom Content Overlay
* [`servicesSuppressionRulesCreateOrUpdate`](/typescript/docs/sdks/suppressionrules.md#createorupdate) - Create or Update Suppression Rules
* [`servicesSuppressionRulesList`](/typescript/docs/sdks/suppressionrules.md#list) - Get Suppression Rules
* [`servicesTaggingRulesCreateOrUpdate`](/typescript/docs/sdks/taggingrules.md#createorupdate) - Create or Update Tagging Rules
* [`servicesTaggingRulesList`](/typescript/docs/sdks/taggingrules.md#list) - Get Tagging Rules
* [`servicesUpdate`](/typescript/docs/sdks/services.md#update) - Update Service
* [`servicesUpdateNotificationDelayConfig`](/typescript/docs/sdks/services.md#updatenotificationdelayconfig) - Delayed Notification Config
* [`servicesUpdateSlackExtension`](/typescript/docs/sdks/services.md#updateslackextension) - Update Slack Extension
* [`sloMarkAffected`](/typescript/docs/sdks/slo.md#markaffected) - Mark SLO Affected
* [`slosCreate`](/typescript/docs/sdks/slos.md#create) - Create SLO
* [`slosGetById`](/typescript/docs/sdks/slos.md#getbyid) - Get SLO By ID
* [`slosList`](/typescript/docs/sdks/slos.md#list) - Get All SLOs
* [`slosMarkFalsePositive`](/typescript/docs/sdks/slos.md#markfalsepositive) - Mark SLO False Positive
* [`slosRemove`](/typescript/docs/sdks/slos.md#remove) - Remove SLO
* [`slosUpdate`](/typescript/docs/sdks/slos.md#update) - Update SLO
* [`squadsCreateV4`](/typescript/docs/sdks/squads.md#createv4) - Create Squad
* [`squadsDelete`](/typescript/docs/sdks/squads.md#delete) - Delete Squad
* [`squadsList`](/typescript/docs/sdks/squads.md#list) - Get All Squads
* [`squadsMembersRemove`](/typescript/docs/sdks/squadsmembers.md#remove) - Remove Squad Member
* [`squadsUpdateMember`](/typescript/docs/sdks/squads.md#updatemember) - Update Squad Member
* [`squadsUpdateName`](/typescript/docs/sdks/squads.md#updatename) - Update Squad Name
* [`squadsV4GetById`](/typescript/docs/sdks/squadsv4.md#getbyid) - Get Squad By ID
* [`squadsV4Update`](/typescript/docs/sdks/squadsv4.md#update) - Update Squad
* [`statusPagesComponentGroupsCreate`](/typescript/docs/sdks/componentgroups.md#create) - Create Component Group
* [`statusPagesComponentGroupsDeleteById`](/typescript/docs/sdks/componentgroups.md#deletebyid) - Delete Component Group By ID
* [`statusPagesComponentGroupsGetById`](/typescript/docs/sdks/componentgroups.md#getbyid) - Get Component Group By ID
* [`statusPagesComponentGroupsList`](/typescript/docs/sdks/componentgroups.md#list) - List Component Groups
* [`statusPagesComponentsCreate`](/typescript/docs/sdks/statuspagescomponents.md#create) - Create Component
* [`statusPagesComponentsGetById`](/typescript/docs/sdks/statuspagescomponents.md#getbyid) - Get Component By ID
* [`statusPagesComponentsUpdateById`](/typescript/docs/sdks/statuspagescomponents.md#updatebyid) - Update Component By ID
* [`statusPagesCreate`](/typescript/docs/sdks/statuspages.md#create) - Create Status Page
* [`statusPagesDelete`](/typescript/docs/sdks/statuspages.md#delete) - Delete Status Page By ID
* [`statusPagesGetById`](/typescript/docs/sdks/statuspages.md#getbyid) - Get Status Page By ID
* [`statusPagesGetIssueById`](/typescript/docs/sdks/statuspages.md#getissuebyid) - Get Issue By ID
* [`statusPagesIssuesList`](/typescript/docs/sdks/statuspagesissues.md#list) - List Issues
* [`statusPagesIssuesUpdate`](/typescript/docs/sdks/statuspagesissues.md#update) - Update Issue
* [`statusPagesList`](/typescript/docs/sdks/statuspages.md#list) - List Status Pages
* [`statusPagesListStatuses`](/typescript/docs/sdks/statuspages.md#liststatuses) - List Status Page Statuses
* [`statusPagesMaintenancesGetById`](/typescript/docs/sdks/statuspagesmaintenances.md#getbyid) - Get Maintenance By ID
* [`statusPagesMaintenancesList`](/typescript/docs/sdks/statuspagesmaintenances.md#list) - List Maintenances
* [`statusPagesMaintenancesUpdateById`](/typescript/docs/sdks/statuspagesmaintenances.md#updatebyid) - Update Maintenance By ID
* [`statusPageSubscribersList`](/typescript/docs/sdks/statuspagesubscribers.md#list) - List Subscribers
* [`statusPagesUpdateById`](/typescript/docs/sdks/statuspages.md#updatebyid) - Update Status Page By ID
* [`teamsCreate`](/typescript/docs/sdks/teams.md#create) - Create Team
* [`teamsGetById`](/typescript/docs/sdks/teams.md#getbyid) - Get Team By ID
* [`teamsGetRoles`](/typescript/docs/sdks/teams.md#getroles) - Get All Team Roles
* [`teamsList`](/typescript/docs/sdks/teams.md#list) - Get All Teams
* [`teamsListMembers`](/typescript/docs/sdks/teams.md#listmembers) - Get All Team Members
* [`teamsMembersAdd`](/typescript/docs/sdks/teamsmembers.md#add) - Add Team Member
* [`teamsMembersBulkAdd`](/typescript/docs/sdks/teamsmembers.md#bulkadd) - Add Bulk Team Member
* [`teamsMembersRemove`](/typescript/docs/sdks/teamsmembers.md#remove) - Remove Team Member
* [`teamsMembersUpdate`](/typescript/docs/sdks/teamsmembers.md#update) - Update Team Member
* [`teamsRemove`](/typescript/docs/sdks/teams.md#remove) - Remove Team
* [`teamsRolesCreate`](/typescript/docs/sdks/roles.md#create) - Create Team Role
* [`teamsRolesRemove`](/typescript/docs/sdks/roles.md#remove) - Remove Team Role
* [`teamsRolesUpdate`](/typescript/docs/sdks/roles.md#update) - Update Team Role
* [`teamsUpdate`](/typescript/docs/sdks/teams.md#update) - Update Team
* [`tokensCreate`](/typescript/docs/sdks/tokens.md#create) - Create Token
* [`usersAdd`](/typescript/docs/sdks/users.md#add) - Add User
* [`usersDelete`](/typescript/docs/sdks/users.md#delete) - Delete User
* [`usersGetAllTokens`](/typescript/docs/sdks/users.md#getalltokens) - Get All Tokens
* [`usersGetById`](/typescript/docs/sdks/users.md#getbyid) - Get User By ID
* [`usersGetRoles`](/typescript/docs/sdks/users.md#getroles) - Get User Roles
* [`usersList`](/typescript/docs/sdks/users.md#list) - Get All Users
* [`usersRemoveFromOrg`](/typescript/docs/sdks/users.md#removefromorg) - Remove User From Org
* [`usersRemoveToken`](/typescript/docs/sdks/users.md#removetoken) - Remove Token
* [`usersUpdateById`](/typescript/docs/sdks/users.md#updatebyid) - Update User by userID
* [`usersUpdateOrgLevelPermissions`](/typescript/docs/sdks/users.md#updateorglevelpermissions) - Update Org Level Permissions
* [`webformsCreate`](/typescript/docs/sdks/webforms.md#create) - Create Webform
* [`webformsGetAll`](/typescript/docs/sdks/webforms.md#getall) - Get All Webforms
* [`webformsGetById`](/typescript/docs/sdks/webforms.md#getbyid) - Get Webform By ID
* [`webformsRemove`](/typescript/docs/sdks/webforms.md#remove) - Remove Webform
* [`webformsUpdate`](/typescript/docs/sdks/webforms.md#update) - Update Webform
* [`webhooksDelete`](/typescript/docs/sdks/webhooks.md#delete) - Delete Webhook
* [`webhooksGetAll`](/typescript/docs/sdks/webhooks.md#getall) - Get All Webhooks
* [`webhooksGetById`](/typescript/docs/sdks/webhooks.md#getbyid) - Get Webhook By ID
* [`workflowActionsGetById`](/typescript/docs/sdks/workflowactions.md#getbyid) - Get Workflow Action By ID
* [`workflowLogsGet`](/typescript/docs/sdks/workflowlogs.md#get) - Get Workflow Logs
* [`workflowsActionsCreate`](/typescript/docs/sdks/workflowsactions.md#create) - Create Action
* [`workflowsBulkEnableDisable`](/typescript/docs/sdks/workflows.md#bulkenabledisable) - Bulk Enable/Disable Workflows
* [`workflowsCreate`](/typescript/docs/sdks/workflows.md#create) - Create Workflow
* [`workflowsDelete`](/typescript/docs/sdks/workflows.md#delete) - Delete Workflow
* [`workflowsDeleteAction`](/typescript/docs/sdks/workflows.md#deleteaction) - Delete Workflow Action
* [`workflowsEnableDisable`](/typescript/docs/sdks/workflows.md#enabledisable) - Enable/Disable Workflow
* [`workflowsGetById`](/typescript/docs/sdks/workflows.md#getbyid) - Get Workflow By ID
* [`workflowsList`](/typescript/docs/sdks/workflows.md#list) - List Workflows
* [`workflowsUpdate`](/typescript/docs/sdks/workflows.md#update) - Update Workflow
* [`workflowsUpdateAction`](/typescript/docs/sdks/workflows.md#updateaction) - Update Workflow Action
* [`workflowsUpdateActionsOrder`](/typescript/docs/sdks/workflows.md#updateactionsorder) - Update Actions Order

</details>

### Pagination

Some of the endpoints in this SDK support pagination. To use pagination, you make your SDK calls as usual, but the returned response object will also be an async iterable that can be consumed using the [`for await...of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) syntax.

Here's an example of one such pagination call:

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";
import { RFCDate } from "@solarwinds/squadcast-sdk-typescript/types";

const squadcastSDK = new SquadcastSDK({
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.auditLogs.list({
    pageSize: 832442,
    pageNumber: 555332,
    startDate: new RFCDate("2023-03-04"),
    endDate: new RFCDate("2024-08-07"),
  });

  for await (const page of result) {
    console.log(page);
  }
}

run();

```

### File uploads

Certain SDK methods accept files as part of a multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request.

> \[!TIP]
>
> Depending on your JavaScript runtime, there are convenient utilities that return a handle to a file without reading the entire contents into memory:
>
> * **Node.js v20+:** Since v20, Node.js comes with a native `openAsBlob` function in [`node:fs`](https://nodejs.org/docs/latest-v20.x/api/fs.html#fsopenasblobpath-options).
> * **Bun:** The native [`Bun.file`](https://bun.sh/docs/api/file-io#reading-files-bun-file) function produces a file handle that can be used for streaming file uploads.
> * **Browsers:** All supported browsers return an instance to a [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File) when reading the value from an `<input type="file">` element.
> * **Node.js v18:** A file stream can be created using the `fileFrom` helper from [`fetch-blob/from.js`](https://www.npmjs.com/package/fetch-blob).

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";
import { openAsBlob } from "node:fs";

const squadcastSDK = new SquadcastSDK({
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.escalationPolicies.update({
    escalationPolicyID: "<id>",
    v3EscalationPoliciesUpdateEscalationPolicyRequest: await openAsBlob(
      "example.file",
    ),
  });

  console.log(result);
}

run();

```

### Retries

Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.

To change the default retry strategy for a single API call, simply provide a retryConfig object to the call:

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const squadcastSDK = new SquadcastSDK({
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.analytics.getOrganization({
    from: "<value>",
    to: "<value>",
  }, {
    retries: {
      strategy: "backoff",
      backoff: {
        initialInterval: 1,
        maxInterval: 50,
        exponent: 1.1,
        maxElapsedTime: 100,
      },
      retryConnectionErrors: false,
    },
  });

  console.log(result);
}

run();

```

If you'd like to override the default retry strategy for all operations that support retries, you can provide a retryConfig at SDK initialization:

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const squadcastSDK = new SquadcastSDK({
  retryConfig: {
    strategy: "backoff",
    backoff: {
      initialInterval: 1,
      maxInterval: 50,
      exponent: 1.1,
      maxElapsedTime: 100,
    },
    retryConnectionErrors: false,
  },
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.analytics.getOrganization({
    from: "<value>",
    to: "<value>",
  });

  console.log(result);
}

run();

```

### Error Handling

[`SquadcastSDKError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/squadcastsdkerror.ts) is the base class for all HTTP error responses. It has the following properties:

| Property            | Type       | Description                                                                             |
| ------------------- | ---------- | --------------------------------------------------------------------------------------- |
| `error.message`     | `string`   | Error message                                                                           |
| `error.statusCode`  | `number`   | HTTP response status code eg `404`                                                      |
| `error.headers`     | `Headers`  | HTTP response headers                                                                   |
| `error.body`        | `string`   | HTTP body. Can be empty string if no body is returned.                                  |
| `error.rawResponse` | `Response` | Raw HTTP response                                                                       |
| `error.data$`       |            | Optional. Some errors may contain structured data. [See Error Classes](#error-classes). |

#### Example

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";
import * as errors from "@solarwinds/squadcast-sdk-typescript/models/errors";

const squadcastSDK = new SquadcastSDK({
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  try {
    const result = await squadcastSDK.analytics.getOrganization({
      from: "<value>",
      to: "<value>",
    });

    console.log(result);
  } catch (error) {
    // The base class for HTTP error responses
    if (error instanceof errors.SquadcastSDKError) {
      console.log(error.message);
      console.log(error.statusCode);
      console.log(error.body);
      console.log(error.headers);

      // Depending on the method different errors may be thrown
      if (error instanceof errors.BadRequestError) {
        console.log(error.data$.meta); // models.CommonV3ErrorMeta
      }
    }
  }
}

run();

```

#### Error Classes

**Primary errors:**

* [`SquadcastSDKError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/squadcastsdkerror.ts): The base class for HTTP error responses.
  * [`PaymentRequiredError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/paymentrequirederror.ts): Client error. Status code `402`. \*
  * [`ForbiddenError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/forbiddenerror.ts): Access is forbidden. Status code `403`. \*
  * [`NotFoundError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/notfounderror.ts): The server cannot find the requested resource. Status code `404`. \*
  * [`ConflictError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/conflicterror.ts): The request conflicts with the current state of the server. Status code `409`. \*
  * [`UnprocessableEntityError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/unprocessableentityerror.ts): Client error. Status code `422`. \*
  * [`InternalServerError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/internalservererror.ts): Server error. Status code `500`. \*
  * [`BadGatewayError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/badgatewayerror.ts): Server error. Status code `502`. \*
  * [`ServiceUnavailableError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/serviceunavailableerror.ts): Service unavailable. Status code `503`. \*
  * [`GatewayTimeoutError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/gatewaytimeouterror.ts): Server error. Status code `504`. \*
  * [`UnauthorizedError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/unauthorizederror.ts): Access is unauthorized. Status code `401`. \*
  * [`BadRequestError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/badrequesterror.ts): The server could not understand the request due to invalid syntax. Status code `400`. \*

<details>

<summary>Less common errors (9)</summary>

<br>

**Network errors:**

* [`ConnectionError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/httpclienterrors.ts): HTTP client was unable to make a request to a server.
* [`RequestTimeoutError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/httpclienterrors.ts): HTTP request timed out due to an AbortSignal signal.
* [`RequestAbortedError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/httpclienterrors.ts): HTTP request was aborted by the client.
* [`InvalidRequestError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/httpclienterrors.ts): Any input used to create a request is invalid.
* [`UnexpectedClientError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/httpclienterrors.ts): Unrecognised or unexpected error.

**Inherit from** [**`SquadcastSDKError`**](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/squadcastsdkerror.ts):

* [`CommonV4Error`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/commonv4error.ts): The server could not understand the request due to invalid syntax. Applicable to 32 of 230 methods.\*
* [`ResponseBodyError1`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/responsebodyerror1.ts): Represents a CircleCI error response for a 400 status code. Status code `400`. Applicable to 1 of 230 methods.\*
* [`ResponseBodyError2`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/responsebodyerror2.ts): Represents a CircleCI error response for a 400 status code. Status code `400`. Applicable to 1 of 230 methods.\*
* [`ResponseValidationError`](https://github.com/solarwinds/squadcast-sdk-typescript/blob/main/squadcastv1/src/models/errors/responsevalidationerror.ts): Type mismatch between the data returned from the server and the structure expected by the SDK. See `error.rawValue` for the raw value and `error.pretty()` for a nicely formatted multi-line string.

</details>

\* Check [the method documentation](#available-resources-and-operations) to see if the error is applicable.

### Server Selection

#### Select Server by Index

You can override the default server globally by passing a server index to the `serverIdx: number` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:

| # | Server                         | Description       |
| - | ------------------------------ | ----------------- |
| 0 | `https://api.eu.squadcast.com` | production EU env |
| 1 | `https://api.squadcast.com`    | production US env |

**Example**

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const squadcastSDK = new SquadcastSDK({
  serverIdx: 0,
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.analytics.getOrganization({
    from: "<value>",
    to: "<value>",
  });

  console.log(result);
}

run();

```

#### Override Server URL Per-Client

The default server can also be overridden globally by passing a URL to the `serverURL: string` optional parameter when initializing the SDK client instance. For example:

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const squadcastSDK = new SquadcastSDK({
  serverURL: "https://api.squadcast.com",
  refreshTokenAuth: "<YOUR_REFRESH_TOKEN_AUTH_HERE>",
});

async function run() {
  const result = await squadcastSDK.analytics.getOrganization({
    from: "<value>",
    to: "<value>",
  });

  console.log(result);
}

run();

```

### Custom HTTP Client

The TypeScript SDK makes API calls using an `HTTPClient` that wraps the native [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). This client is a thin wrapper around `fetch` and provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle errors and response.

The `HTTPClient` constructor takes an optional `fetcher` argument that can be used to integrate a third-party HTTP client or when writing tests to mock out the HTTP client and feed in fixtures.

The following example shows how to:

* route requests through a proxy server using [undici](https://www.npmjs.com/package/undici)'s ProxyAgent
* use the `"beforeRequest"` hook to add a custom header and a timeout to requests
* use the `"requestError"` hook to log errors

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";
import { ProxyAgent } from "undici";
import { HTTPClient } from "@solarwinds/squadcast-sdk-typescript/lib/http";

const dispatcher = new ProxyAgent("http://proxy.example.com:8080");

const httpClient = new HTTPClient({
  // 'fetcher' takes a function that has the same signature as native 'fetch'.
  fetcher: (input, init) =>
    // 'dispatcher' is specific to undici and not part of the standard Fetch API.
    fetch(input, { ...init, dispatcher } as RequestInit),
});

httpClient.addHook("beforeRequest", (request) => {
  const nextRequest = new Request(request, {
    signal: request.signal || AbortSignal.timeout(5000)
  });

  nextRequest.headers.set("x-custom-header", "custom value");

  return nextRequest;
});

httpClient.addHook("requestError", (error, request) => {
  console.group("Request Error");
  console.log("Reason:", `${error}`);
  console.log("Endpoint:", `${request.method} ${request.url}`);
  console.groupEnd();
});

const sdk = new SquadcastSDK({ httpClient: httpClient });
```

### Debugging

You can setup your SDK to emit debug logs for SDK requests and responses.

You can pass a logger that matches `console`'s interface as an SDK option.

> \[!WARNING] Beware that debug logging will reveal secrets, like API tokens in headers, in log messages printed to a console or files. It's recommended to use this feature only during local development and not in production.

```typescript
import { SquadcastSDK } from "@solarwinds/squadcast-sdk-typescript";

const sdk = new SquadcastSDK({ debugLogger: console });
```

## Development

### Maturity

This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally looking for the latest version.

### Contributions

While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.

#### SDK Created by [Speakeasy](https://www.speakeasy.com/?utm_source=squadcast-sdk\&utm_campaign=typescript)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.incidents.cloud.solarwinds.com/typescript/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
